Phi*_*ier 61
只需使用Json.NET库.它允许您非常轻松地解析Json格式字符串:
JObject o = JObject.Parse(@"
{
""something"":""value"",
""jagged"":
{
""someother"":""value2""
}
}");
string something = (string)o["something"];
Run Code Online (Sandbox Code Playgroud)
Jus*_*ner 38
DataContractJsonSerializer serializer =
new DataContractJsonSerializer(typeof(YourObjectType));
YourObjectType yourObject = (YourObjectType)serializer.ReadObject(jsonStream);
Run Code Online (Sandbox Code Playgroud)
您也可以使用JavaScriptSerializer
,但DataContractJsonSerializer
据说能够更好地处理复杂类型.
奇怪的是,JavaScriptSerializer曾被弃用(在3.5中),然后由于ASP.NET MVC(在3.5 SP1中)而复活.这肯定足以动摇我的信心并引导我使用,DataContractJsonSerializer
因为它很难为WCF烘焙.
Rba*_*rin 18
我想这就是你想要的:
JavaScriptSerializer JSS = new JavaScriptSerializer();
T obj = JSS.Deserialize<T>(String);
Run Code Online (Sandbox Code Playgroud)
您应该创建一个表示JSON键的结构(如果您确切知道它),然后您可以轻松地将JSON字符串反序列化到您的结构中.在我的考试中,我对Google Cloud Message服务器的响应进行了反序列化:
class templateResponse
{
public String multicast_id;
public String success;
public String failure;
public String canonical_ids;
public Result[] results;
public class Result
{
public String message_id;
public String registration_id;
public String error;
};
}
Run Code Online (Sandbox Code Playgroud)
传入的JSON是:
"\"multicast_id\":7400896764380883211,\"success\":1,\"failure\":0,\"canonical_ids\":0,\"results\":[{\"message_id\":\"0:1351777805148960%39895cf0f9fd7ecd\"}]}"
Run Code Online (Sandbox Code Playgroud)
所以,使用
templateResponse result = new JavaScriptSerializer().Deserialize<templateResponse>(json);
Run Code Online (Sandbox Code Playgroud)
你会得到反序列化的result
对象
归档时间: |
|
查看次数: |
112053 次 |
最近记录: |