如何在 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);