我如何在C#中的.net 4 Client Profile中使用LINQ to JSON。我想查询msdn blog post中显示的某些json响应,而不必写出合同(datacontract,servicecontract等)。我真的只需要查询(读取)响应,我不需要修改json响应。 (同样,datacontract会比LINQ更快到JSON吗?)
或者我可以使用XML或完整的.net 4框架,但我希望这可以避免。如果它比安装整个框架更好,我可以使用外部库。
答案 0 :(得分:3)
JSON.net非常受欢迎,似乎就是你所追求的目标。
答案 1 :(得分:1)
如果您的服务由Ajax(jQuery)客户端使用,您将通过使用JSON获得最佳性能。
另一项建议;为了摆脱相同的域策略,我建议您启用crossDomainScriptAccessEnabled功能:
<webHttpBinding>
<binding name="myHttpBinding" crossDomainScriptAccessEnabled="true" />
</webHttpBinding>
关于DataContract;在您的方案中,实际上并不需要DataContract。
示例代码:
您的服务:
[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class BlogService {
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json)]
public List<Article> GetBlogArticles()
{
return Article.GetDummyArticles.ToList();
}
}
文章类(摘录):
public class Article {
public string Title { get; set; }
public string Body { get; set; }
public static IEnumerable<Article> GetDummyArticles() {
yield return new Article { Title = "Article 1", Body = "sdlkfjsdlkfjskl" };
yield return new Article { Title = "Article 2", Body = "sfsfsdfd23434wfdfsfdfkfjskl" };
}
}
对于您的场景,我实际上找不到使用任何(第三方)库的理由,因为WCF4已经包含对带有或不带Padding的JSON的本机支持。