词典取值不能多级取值吗?

使用问题 · 1334 次浏览
罗名扬的quicker 创建于 14天8小时前

词典取值不能多级取值吗?比如

"school":{"class1":"大一","class2":"大二"}

我想要取class1的值,在js的语法中是:school.class1,但是在quicker中只能取school的值,无法取school.class1的值

 

为什么这样的语法不行


回复内容
CL 14天7小时前
#2

不能的。

Quicker是c#编写,C#是一种强类型的语言。Quicker里面的词典类是用Dictionary<string,object> 类型。值是一个c#里的object类型。 虽然本身可以存储另外一个词典,但是访问的时候要强制转换成Dictionary类型以后才能继续访问。 这需要一些c#的知识,在表达式里使用。

如果要处理Json,可以使用Json提取模块,也可以在表达式里使用 https://www.newtonsoft.com/json 这个库的一些类处理。


CL 最后更新于 14天7小时前

其实是可以的老大,表达式引擎做了处理

Cesaryuan 14天4小时前
Cesaryuan 最后更新于 14天4小时前
回复 Cesaryuan :

是在表达式里用dynamic方式访问么?没弄过😂

CL 14天3小时前
回复 CL :

表单时会自动把object当作dynamic处理好像

Cesaryuan 14天3小时前

怎么在表达式里提取Json的值呢?

Marcus 13天13小时前
回复 Marcus :

具体就是用newtonesoft.Json类库的类JObject,JArray之类的。可以看下这个例子读取json数组的。

https://getquicker.net/Sharedaction?code=af03854e-4a20-4052-72e8-08d9aa624e96 

CL 13天13小时前
好像只能读取,如果我要写入该怎么办呢 罗名扬的quicker 10天11小时前
回复 罗名扬的quicker :

不能直接修改。如果要将对象序列化为json文本,可以用匿名对象/词典。类似于这样:

$= JsonConvert.SerializeObject(new {prop=value, prop1=value1}); 

也可以参考这里 https://stackoverflow.com/questions/10252675/create-json-dynamically-in-c-sharp 

CL 10天10小时前
回复 CL :

也能直接修改的 {dict}["key1"]["key2"] = 2,😂

Cesaryuan 10天10小时前
回复 CL :

之前没有学过C#,不知道怎么用啊,我下载了Json类库到本地,并且在Dll填写了路径,但是还是报错,应该怎么使用这个呢?



罗名扬的quicker 10天5小时前
回复 Cesaryuan :

有例子吗?我没有实现过

罗名扬的quicker 10天5小时前
回复 罗名扬的quicker :

可以试试详细说一下你要做什么,实现什么目的?

CL 10天5小时前

想实现在一个json文件中体现公司部门人员信息、更新人员信息、删除人员信息。

如json文件中结构为:

广告部:

     部长

             姓名:张三

             性别:男

             电话:16888888888

     设计师

            姓名:李设计师

            性别:女

            电话:16888888888

因为我只能实现读取该文件,更新人员信息时,我只能手动在原来的json文件中进行修改,而不能使用

广告部.部长.姓名=‘王五’的方式进行修改

以及删除 广告部.设计师 的数据

罗名扬的quicker 10天4小时前
回复 罗名扬的quicker :

https://getquicker.net/Sharedaction?code=c558c0d5-c59e-4985-b8c4-08d9ae2c0978

Cesaryuan 9天2小时前
回复主贴