.net 4.0 Client Profile中的LINQ to JSON

时间:2011-06-01 23:04:47

标签: c# json .net-client-profile

我如何在C#中的.net 4 Client Profile中使用LINQ to JSON。我想查询msdn blog post中显示的某些json响应,而不必写出合同(datacontract,servicecontract等)。我真的只需要查询(读取)响应,我不需要修改json响应。 (同样,datacontract会比LINQ更快到JSON吗?)

或者我可以使用XML或完整的.net 4框架,但我希望这可以避免。如果它比安装整个框架更好,我可以使用外部库。

2 个答案:

答案 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的本机支持。

相关问题