如何在C#,Windows Phone中通过给定ID访问嵌套的JSON对象?
我的JSON来自url如何在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",
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中呢?