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

使用问题 · 2192 次浏览
罗名扬的quicker 创建于 2021-11-18 14:23

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

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

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

 

为什么这样的语法不行


回复内容
CL 2021-11-18 15:52
#2

不能的。

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

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


CL 最后更新于 2021-11-18 15:59
Cesar 2021-11-18 18:44 :

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

Cesar 最后更新于 2021-11-18 18:44
CL 回复 Cesar 2021-11-18 19:41 :

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

Cesar 回复 CL 2021-11-18 19:46 :

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

Marcusx 2021-11-19 09:37 :

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

CL 回复 Marcusx 2021-11-19 09:53 :

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

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

罗名扬的quicker 2021-11-22 11:15 :
好像只能读取,如果我要写入该怎么办呢
CL 回复 罗名扬的quicker 2021-11-22 12:15 :

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

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

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

Cesar 回复 CL 2021-11-22 13:13 :

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

罗名扬的quicker 回复 CL 2021-11-22 17:34 :

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



罗名扬的quicker 回复 Cesar 2021-11-22 17:35 :

有例子吗?我没有实现过

CL 回复 罗名扬的quicker 2021-11-22 18:06 :

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

罗名扬的quicker 2021-11-22 18:50 :

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

如json文件中结构为:

广告部:

     部长

             姓名:张三

             性别:男

             电话:16888888888

     设计师

            姓名:李设计师

            性别:女

            电话:16888888888

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

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

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

Cesar 回复 罗名扬的quicker 2021-11-23 21:07 :

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

回复主贴