繁体   English   中英

C#反序列化

[英]C# deserialization

如何使用keyvaluepair反序列化上面的json

string stations = [{"2":false,"1":"Aforre","0":"WS6"},{"2":false,"1":"Alodtau","0":"WS3"},{"2":false,"1":"Balimo Station","0":"WS36"}]

我这样子

var get = js.Deserialize<Dictionary<string,dynamic>>(stations);

尝试这个:

string stations = "[{'2':false,'1':'Aforre','0':'WS6'},{'2':false,'1':'Alodtau','0':'WS3'},{'2':false,'1':'Balimo Station','0':'WS36'}]";
var serializer = new JavaScriptSerializer();
dynamic value = serializer.DeserializeObject(stations);

您可以访问以下对象:

var a = value[0]["0"];

并且将具有“ WS6”(根据您的JSON)

显示的JSON是一个数组。 您可以尝试取消序列化以:

Dictionary<string, object>[]

var get = js.Deserialize<Dictionary<string,object>[]>(stations);

最好的选择之一是创建一个由所有键值对组成的类,然后将json字符串反序列化为所创建类的对象

您可以尝试使用动态变量,如下所示:

 string stations = "[{'2':false,'1':'Aforre','0':'WS6'},{'2':false,'1':'Alodtau','0':'WS3'},{'2':false,'1':'Balimo Station','0':'WS36'}]";
 var serializer = new JavaScriptSerializer();
 dynamic serializevalues = serializer.DeserializeObject(stations);
 var valueof1 = serializevalues[0]["1"];
 Response.Write(valueof1); 

上面将打印输出“ Aforre”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM