0

我在 Windows Phone 8 中解析 JSON 时遇到问题。我有一个像

{"ids":{"internal":[{"type":"ABCD","id":"7BCDCA0676CC8E2F5","time":19376,"asV":"AP_33160"}
                     ,{"type":"ADFP","id":"A2D3D22A6458BC2B","time":19376,"asV":"AP_420TETA"}
                     ]
            },
 "err":6000,
 "msg":"No Msg",
 "timeTL":87600
}

我想要有这样的价值观:

string strIds= "{"internal":[{"type":"ABCD","id":"7BCDCA0676CC8E2F5","time":19376,"asV":"AP_33160"},{"type":"ADFP","id":"A2D3D22A6458BC2B","time":19376,"asV":"AP_420TETA"}]}" ;


int err= 6000;
string message= "msg";
int timeTL=87600;

我能够使用 JsonValue 在 Windows 8 上获得所需的结果,但 Windows Phone 8 不支持它。主要问题是“内部”的内容不固定,我想将“ids”的完整值保存到一个字符串。

谢谢!

4

1 回答 1

0

您可以使用Newtonsoft.Json解析您的 Json 数据。该库在 Nuget.org 上可用。通过转到 Tools->Libiya Package Manager ->Packae manager 控制台并键入Install-Package Newtonsoft.Json将其添加到您的项目

创建类如下。通过使用 json 字符串和http://json2csharp.com/

public class RootObject
{
    //public Ids ids { get; set; } 
    public object ids { get; set; } //use type object for id 
    public int err { get; set; }
    public string msg { get; set; }
    public int timeTL { get; set; }
}


results = reader.ReadToEnd();
then using newtonsoft.json
RootObject root = JsonConvert.DeserializeObject<RootObject>(results, new JsonSerializerSettings
                    {
                        NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore,
                        TypeNameHandling = TypeNameHandling.All,
                        TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Full
                    });

您可以通过使用获取 Id 的值

string str= root.ids.Tostring();

希望这有效

于 2013-04-24T12:24:18.947 回答