在Windows Phone 7上解析JSON

6
我试图在Windows Phone 7上进行一些简单的JSON操作。JSON.NET看起来很不错,但是当我尝试添加引用时,VS2010会发出警告。
它允许我添加Silverlight dll,但警告我可能会导致奇怪的应用程序行为,因此我对其能否正常工作持怀疑态度。 似乎是一种很好的序列化和反序列化数据的方法,但我需要实际查询它。我可以使用这个技术将它序列化为IQueryable,然后在它上面使用LINQ吗?我是否可以以某种方式将JSON转换为XML并使用LINQ?
还是我应该自己进行hacky和sad字符串操作? 更新:由于某种原因,我甚至无法让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 的引用,目前看起来一切正常。祈祷不出问题。


只是好奇,开发WP7怎么样? - Markus Hedlund
为什么当你在 System.ServiceModel.Web 中找到 DataContractJsonSerializer 时,还要继续使用 JSON.Net?有哪些优点? - codeclash
2个回答

5
是的,根据您的更新3(几乎):
DataContractJsonSerializerSystem.Runtime.Serialization.Json命名空间中,但在System.Servicemodel.Web.dll程序集中。
这已经困扰了很多人。
很高兴看到您似乎已经解决了这个问题。

0
此外,如果您使用DataContract属性,则该属性位于System.Runtime.Serialization命名空间中,并在System.Runtime.Serialization.dll程序集中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接