C# - JSON到Key Value&反之亦然

时间:2015-02-09 13:58:23

标签: c# json

我从JSON文件中获取字符串&想要将其转换为键值对。

我正在使用JSON.NET。

我知道我可以使用以下命令反序列化List:

List<JsonClass> jsonFileComments = JsonConvert.DeserializeObject<List<JsonClass>>(json);

我可以使用:

对数组进行反序列化
Dictionary<string, string> values = JsonConvert.DeserializeObject<Dictionary<string, string>>(json);

但是因为我的JSON字符串包含Lists&amp;仅在单个文件中的数组。顺序如下:

{
    List,
    List,
    List,
    Array,
    List, 
    Array,
    List 
}

您能告诉我如何使用单一方式对其进行反序列化。

其他方式是我需要分离阵列&amp;分开工作。而在序列化时,我需要完成这些工作。

2 个答案:

答案 0 :(得分:1)

一种方法是使用dynamic(类型是静态类型,但动态类型的对象绕过静态类型检查。)?

dynamic d = JObject.Parse("{number:1000, str:'string', array: [1,2,3,4,5,6]}");

Console.WriteLine(d.number);
Console.WriteLine(d.str);
Console.WriteLine(d.array.Count);

答案 1 :(得分:0)

希望此代码块有帮助。我假设你有jSon对象&amp;你需要解析它:

Newtonsoft.Json.Linq.JObject o = Newtonsoft.Json.Linq.JObject.Parse(yourJsonData);
Newtonsoft.Json.Linq.JArray textArray = (Newtonsoft.Json.Linq.JArray)o["yourArray"];
if (textArray.Count > 0)
{
for (int i = 0; i < textArray.Count; i++)
{//do something}
}