如何在C#XAML Windows 8 Metro应用程序中解析/反序列化JSON字符串?

如何在C#XAML Windows 8 Metro应用程序中解析/反序列化JSON字符串?,json,windows-8,windows-runtime,windows-store-apps,microsoft-metro,Json,Windows 8,Windows Runtime,Windows Store Apps,Microsoft Metro,我正在开发一个C#/XAML metro应用程序,其中使用了JSON REST服务。如何将JSON响应反序列化为文本或自定义对象?如果您在其他.NET配置文件中使用过,可以通过NuGet将库添加到Windows应用商店应用程序项目中 以下是一些例子: 对象转换为Json var obj=new{Name=“Programming F#”,Author=“Chris Smith”} 字符串json=JsonConvert.SerializedObject(obj,Formatting.Indent

我正在开发一个C#/XAML metro应用程序,其中使用了JSON REST服务。如何将JSON响应反序列化为文本或自定义对象?

如果您在其他.NET配置文件中使用过,可以通过NuGet将库添加到Windows应用商店应用程序项目中

以下是一些例子:

  • 对象转换为Json

    var obj=new{Name=“Programming F#”,Author=“Chris Smith”}

    字符串json=JsonConvert.SerializedObject(obj,Formatting.Indented)

  • 查询Json

    var json=@“{”“Name”“:”“Programming F#”“,”“Author”“:”“Chris Smith”“}”

    var jObject=jObject.Parse(json)

    字符串名称=(字符串)作业对象[“名称”];//编程F#

  • Json到数组

    字符串json=@“['F#','Erlang','C#','Haskell','Prolog']”

    JArray数组=JArray.Parse(json)

    foreach(数组中的变量项) { 字符串名称=(字符串)项; }


  • 您可以找到Json.NET文档。

    Windows应用商店应用程序的官方Json API位于
    Windows.Data.Json
    命名空间中:

    • JsonObject.Parse()
      new JsonObject()
      对于对象,它的工作方式与
    • JsonArray.Parse()
    • JsonValue.Parse()
      JsonValue.CreateStringValue()
      JsonValue.CreateBooleanValue()
      JsonValue.CreateNumberValue()
      用于字符串、布尔值、数字和空值
    请在此处查看一些样本:


    您不需要添加任何库。

    在使用JSON REST服务时,我发现目前为止,反序列化JSON的最佳方法是使用包含ReadAsASync(HTTP内容)和HttpClient的类。可以通过安装找到此扩展类

    发出web请求并反序列化就这么简单:

    private const string baseUri = "https://weu.google.co/";
    private HttpClient client = new HttpClient();
    var result = await client.GetAsync([Your URI]);
    var data  = await result.Content.ReadAsAsync<YourClass>();
    return data.Value;
    
    private const string baseUri=”https://weu.google.co/";
    私有HttpClient=新HttpClient();
    var result=await client.GetAsync([您的URI]);
    var data=wait result.Content.ReadAsAsync();
    返回数据值;
    
    看一看