Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#,Windows Phone中通过给定ID访问嵌套的JSON对象?_C#_Json_Windows Phone 7 - Fatal编程技术网

如何在C#,Windows Phone中通过给定ID访问嵌套的JSON对象?

如何在C#,Windows Phone中通过给定ID访问嵌套的JSON对象?,c#,json,windows-phone-7,C#,Json,Windows Phone 7,我的JSON来自urlhttp://192.168.1.50/vantaa/api/place它看起来是这样的。 第一个问题是如何从这个JSON获取数据。我需要在xaml列表页面中绑定它 { places: [ { id: "243", title: "Abrams ja Husbacka", latitude: "60.25627906773524",

我的JSON来自url
http://192.168.1.50/vantaa/api/place
它看起来是这样的。
第一个问题是如何从这个JSON获取数据。我需要在xaml列表页面中绑定它

{
         places: [
            {
              id: "243",
              title: "Abrams ja Husbacka",
              latitude: "60.25627906773524",
              longitude: "24.842572314971903",
              www: ""
            },
            {
              id: "149",
              title: "Alkupamaus",
              latitude: "60.27657927084334",
              longitude: "24.848795039886454",
              www: ""
            }
         ]
}
我需要在新的xaml页面中使用下面的JSON。为了得到下面的JSON,url将如下所示http://192.168.1.50/vantaa/api/place/243

例如,有一个列表页面显示上述JSON的数据。用户单击位置id 243的文本块后。它将导航到新页面,然后显示位置id为243的绑定JSON数据,如下所示。(图像阵列是动态的)

对这个问题有什么建议吗


ps:我不熟悉WP和C,所以请简单解释。

基于JSON创建对象。例如,放置对象将是:

public class Place
{
    public string id {get; set;}
    public string title {get; set; }
    public string latitude {get; set; }
    public string longitude {get; set; }
    public string www {get; set;}
}
然后,您可以将JSON转换为一个可以绑定页面的对象。使用JSONConvert或JavaScriptSerializer

var somewhere = JsonConvert.DeserializeObject<Place>(json);
var-somewhere=JsonConvert.DeserializeObject(json);

JSONConvert来自并且是一个非常成熟的Json库。您还可以使用NuGET package manager引用它。

基于JSON创建对象。例如,放置对象将是:

public class Place
{
    public string id {get; set;}
    public string title {get; set; }
    public string latitude {get; set; }
    public string longitude {get; set; }
    public string www {get; set;}
}
然后,您可以将JSON转换为一个可以绑定页面的对象。使用JSONConvert或JavaScriptSerializer

var somewhere = JsonConvert.DeserializeObject<Place>(json);
var-somewhere=JsonConvert.DeserializeObject(json);

JSONConvert来自并且是一个非常成熟的Json库。您也可以使用NuGET package manager引用它。

我建议使用JSON.NET库。您可以通过NuGet软件包管理器获得它。(在解决方案资源管理器中右键单击您的解决方案,然后单击管理NuGet软件包)

正如Keifer所说,您可以创建单独的类来解析JSON。但是,如果您不希望JSON的每个部分都有一个类,那么可以使用
dynamic
而不是
var
。您还需要下载JSON,但我假设您已经下载了,除非您需要,否则我不会再重复

下载JSON后,需要对其进行反序列化。像这样: 我们假设您在下载JSON后将其命名为
jsonstring

dynamic somewhere = JsonConvert.DeserializeObject(jsonstring);
要解析JSON并在反序列化后获取列表,您将使用

JObject o = JObject.Parse(jsonstring);
JArray items = (JArray)root["Places"];

我推荐JSON.NET库。您可以通过NuGet软件包管理器获得它。(在解决方案资源管理器中右键单击您的解决方案,然后单击管理NuGet软件包)

正如Keifer所说,您可以创建单独的类来解析JSON。但是,如果您不希望JSON的每个部分都有一个类,那么可以使用
dynamic
而不是
var
。您还需要下载JSON,但我假设您已经下载了,除非您需要,否则我不会再重复

下载JSON后,需要对其进行反序列化。像这样: 我们假设您在下载JSON后将其命名为
jsonstring

dynamic somewhere = JsonConvert.DeserializeObject(jsonstring);
要解析JSON并在反序列化后获取列表,您将使用

JObject o = JObject.Parse(jsonstring);
JArray items = (JArray)root["Places"];

我不明白。你能提供JSONConvert的完整代码吗?看看这篇博文,它将消除你对我现在得到它的大部分疑虑,但我如何将它绑定到UI?我不明白。你能提供JSONConvert的完整代码吗?看看这篇博文,它将消除你对我现在得到它的大部分疑虑,但是我如何将它绑定到UI中呢?