2014-01-22 58 views
3

工作,我收到此JSON响应:有效的方法来使用JSON

{ 
    "status": "Ok", 
    "total": 105373, 
    "result": [ 
     { 
      "id": 668839, 
      "cn": "A-12157-68812", 
      "pD": "09-12-2012", 
      "cCD": "06-05-2012", 
      "cT": "PERM", 
      "fN": "COMCAST CABLE COMMUNICATIONS, LLC", 
      "s": "NJ", 
      "cR": "Certified", 
      "pT": "ENGINEER 3", 
      "vC": 6, 
      "cddt": "html" 
     }, 
     { 
      "id": 725695, 
      "cn": "A-12361-25668", 
      "pD": "05-28-2013", 
      "cCD": "12-26-2012", 
      "cT": "PERM", 
      "fN": "L'ONVIE INC.", 
      "s": "NY", 
      "cR": "Certified", 
      "pT": "Biochemist", 
      "vC": 6, 
      "cddt": "html" 
     }, 
     { 
      "id": 0, 
      "cn": "A-11199-93239", 
      "pD": "05-31-2012", 
      "cCD": "07-18-2011", 
      "cT": "PERM", 
      "fN": "ROCKWELL AUTOMATION, INC.", 
      "s": "PR", 
      "cR": "Certified", 
      "pT": "Marketing Managers", 
      "vC": -1 
     }] 
} 
  1. 什么是将此转换成一个对象,这样我可以应用各种LINQ变换来查询一些有意义的数据的最佳方式是什么?

这样做的有效方法是什么?

应创建类,如:

public class Status { 
         string Status {get; set;} 
         int Total {get; set;} 
         IEnumerable<Result> Results {get; set;} 
         } 



public class Result { 
        string Id {get; set;} 
        .................. 
        } 

然后找出映射/铸造?

+0

避免问几个问题一,请。只需将它们作为单独的问题发布即可。 http://meta.stackexchange.com/questions/212863/answering-multiple-questions-in-a-single-post – vbo

+0

它没有几个问题。在多种选择的情况下寻找效率。 –

+0

也许你只需要改变这一点。现在看起来像这样:1)如何将JSON字符串转换为对象,可以用LINQ查询? 2)如何在db中存储这个对象? 3)如何将其映射到强类型的东西? – vbo

回答

5

如果您使用的是最新版本的Visual Studio,则可以使用编辑>选择性粘贴>将JSON粘贴为类。这将为您节省大量时间:)

如果您对数据进行的任何操作都不是简单的操作,您将需要创建自己的类。您可以使用数据属性将Json中的字段重命名为更合适的名称。

这取决于您使用哪种解串器--Json.net或内置的.net版本。

尝试搜索dataContract和DataMember如果你使用一个内置的.NET解串器或jsonProperty如果使用json.net

+1

我未来的自我感谢你,并没有意识到这种令人敬畏的 – Moho

+1

Geez。更新版本的Visual Studio是否也会冲泡咖啡并制作三明治? –

+0

@ Geezer68数据属性将如何? –