【发布时间】:2019-05-23 10:44:06
【问题描述】:
我对编码很陌生,这是我的要求:
- 我收到一个 JSON 响应,其中包含一组值(请参阅下面的 JSON 响应中的读取、更新、删除)
- 值的数量是动态的,并且每次都会变化。
- 我想知道如何检索它们并放入字符串数组并返回值
例如:最终结果应该是这样的
string[] deleteValues = {"MCS:Menu:Admin","MCS:test"}
如果这个问题已经有答案,请指出正确的方向。
提前致谢
============================================
我可以通过这种方式获取值...
string value1 = new JavaScriptSerializer().Deserialize<JSON_Deconstructor>(resp).Permitted[0].Delete[0].ToString();
string value2 = new JavaScriptSerializer().Deserialize<JSON_Deconstructor>(resp).Permitted[0].Delete[1].ToString();
但由于 delete 中的值的数量是动态的,我需要知道如何提取它们。
=====================
代码sn-p:
string resp = new StreamReader(request1.GetResponse().GetResponseStream()).ReadToEnd(); // resp is a JSON response from a server
JSON_Deconstructor dc = new JSON_Deconstructor { };
dc.Permitted = new Permitted[1];
string value1 = new JavaScriptSerializer().Deserialize<JSON_Deconstructor>(resp).Permitted[0].Delete[0].ToString();
string value2 = new JavaScriptSerializer().Deserialize<JSON_Deconstructor>(resp).Permitted[0].Delete[1].ToString();
===================
JSON_Deconstructor 类内容:
public class JSON_Deconstructor
{
public Permitted[] Permitted { get; set; }
public Denied[] Denied { get; set; }
}
===================
允许的课程内容:
public class Permitted
{
public string[] Read { get; set; }
public string[] Update { get; set; }
public string[] Delete { get; set; }
}
==================
JSON 响应:
{
"Permitted": [
{
"read": [
"MCS:Menu:Admin"
],
"update": [
"MCS:test"
],
"delete": [
"MCS:Menu:Admin",
"MCS:test"
]
}
]
}
【问题讨论】:
-
请添加一个你想做什么的例子。
-
使用
forach()?你想用这些值做什么? -
@itdoesntwork 我已经编辑了一个我想要最终结果的示例
-
会将 JSON 解析为 .NET 对象,对其进行修改(您可以在代码中对此类对象执行任何操作,删除您想要的任何内容等),然后将其序列化回 JSON 为您工作?通常,您有一个输入和一个输出模型(.NET 对象)。您将 JSON 解析为输入模型,将其转换为输出模型,然后将其序列化回 JSON。输入和输出模型应对应于输入/输出 JSON。
-
@Aditia,你能否解释一下
no.是什么?
标签: c# .net json json.net deserialization