在WindowsPhone7上解析JSON

在WindowsPhone7上解析JSON,json,windows-phone-7,json.net,Json,Windows Phone 7,Json.net,我试图在WindowsPhone7上进行一些简单的JSON操作。JSON.NET看起来很棒,但当我尝试添加对它的引用时,VS2010会抱怨 它允许我添加Silverlight dll,但警告我它可能会导致奇怪的应用程序行为,所以我怀疑它是否真的能工作 看起来是序列化和反序列化数据的好方法,但我需要实际查询它。我是否可以使用此技术将其序列化为IQueryable,然后在其上使用LINQ?我可以将JSON转换成XML并使用LINQ吗 或者我应该自己做一些粗糙和悲伤的字符串操作 更新:由于某些原因,我

我试图在WindowsPhone7上进行一些简单的JSON操作。JSON.NET看起来很棒,但当我尝试添加对它的引用时,VS2010会抱怨

它允许我添加Silverlight dll,但警告我它可能会导致奇怪的应用程序行为,所以我怀疑它是否真的能工作

看起来是序列化和反序列化数据的好方法,但我需要实际查询它。我是否可以使用此技术将其序列化为
IQueryable
,然后在其上使用LINQ?我可以将JSON转换成XML并使用LINQ吗

或者我应该自己做一些粗糙和悲伤的字符串操作

更新:由于某些原因,我甚至无法让VS2010识别
DataContractJsonSerializer

        // works
        DataContractSerializer ser1 = new DataContractSerializer();

        // the type or namespace 'DataContractJsonSerializer' could not be found ...
        DataContractJsonSerializer ser = new DataContractJsonSerializer();
更新2:以下投诉:

using System.Runtime.Serialization.Json;
错误:

类型或命名空间名称“Json”不存在 命名空间中不存在 “System.Runtime.Serialization”(是 您缺少程序集引用吗?)

我是做错了什么,还是wp7不支持JSON

更新3:看起来
DataContractJsonSerializer
位于System.Servicemodel.Web命名空间中

更新4:我添加了对Silverlight JSON.NET dll的引用,目前它似乎工作正常。祈求好运。

是的,根据您的更新3(几乎):
DataContractJsonSerializer
位于
System.Servicemodel.Web.dll
程序集中,但位于
System.Runtime.Serialization.Json
命名空间中

很多人都被抓了出来


很高兴您似乎已经开始工作了。

另外,如果您使用DataContract属性,它位于
System.Runtime.Serialization
命名空间和
System.Runtime.Serialization.dll
程序集中。

只是好奇;WP7是如何开发的?为什么在System.ServiceModel.Web中找到DataContractJsonSerializer时仍然使用JSON.Net?有什么优点吗?