如何在 C# 中将 JSON 字符串解析为名称值对
How to parse a JSON string in to a name value pair in C#
我必须将 JSON
字符串解析为名称值对列表:
{"vars":[
{"name":"abcd","value":"true"},
{"name":"efgh","value":"false"},
{"name":"xyz","value":"sring1"},
{"name":"ghi","value":"string2"},
{"name":"jkl","value":"num1"}
],"OtherNames":["String12345"]}
由于涉及多方,我无法添加 newtonsoft
JsonConvert 的引用。
使用 JavaScriptSerializer
时,只有当我在 string
中有一个值但没有 array
[=19 时,我才能将 json
转换为名称值=]
JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
Dictionary<string,string> dict = jsSerializer.Deserialize<Dictionary<string, string>>(jsonText);
我认为声明我将获取数组值的声明在某处丢失了。
您不能将 Json 反序列化为 Dictionary<string, string>
。因为 json 包含两个不同的数组,你应该像这样使用复杂对象反序列化它;
public class Var
{
public string name { get; set; }
public string value { get; set; }
}
public class SampleJson
{
public List<Var> vars { get; set; }
public List<string> OtherNames { get; set; }
}
JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
var sampleJson = jsSerializer.Deserialize<SampleJson>(jsonText);
我必须将 JSON
字符串解析为名称值对列表:
{"vars":[
{"name":"abcd","value":"true"},
{"name":"efgh","value":"false"},
{"name":"xyz","value":"sring1"},
{"name":"ghi","value":"string2"},
{"name":"jkl","value":"num1"}
],"OtherNames":["String12345"]}
由于涉及多方,我无法添加 newtonsoft
JsonConvert 的引用。
使用 JavaScriptSerializer
时,只有当我在 string
中有一个值但没有 array
[=19 时,我才能将 json
转换为名称值=]
JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
Dictionary<string,string> dict = jsSerializer.Deserialize<Dictionary<string, string>>(jsonText);
我认为声明我将获取数组值的声明在某处丢失了。
您不能将 Json 反序列化为 Dictionary<string, string>
。因为 json 包含两个不同的数组,你应该像这样使用复杂对象反序列化它;
public class Var
{
public string name { get; set; }
public string value { get; set; }
}
public class SampleJson
{
public List<Var> vars { get; set; }
public List<string> OtherNames { get; set; }
}
JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
var sampleJson = jsSerializer.Deserialize<SampleJson>(jsonText);