使用c#从json字符串读取值

时间:2017-05-21 10:45:41

标签: c# json sharepoint-online

我从sharepoint 2013 rest api获得了这个Json响应:

{"odata.metadata":"https://killer33.sharepoint.com/sites/dev/_api/$metadata#SP.ListData.MessageListItems&$select=Title,Mesage,Description,Priority,ID","value":[{"odata.type":"SP.Data.MessageListItem","odata.id":"ed1c9e96-8dde-4498-b7e9-4db2bcb9e1ea","odata.etag":"\"1\"","odata.editLink":"Web/Lists(guid'92804422-bd9e-4d7b-baf0-5c2de0953b95')/Items(1)","Id":1,"Title":"ok","Mesage":"get","Description":"fd","Priority":"Medium","ID":1},{"odata.type":"SP.Data.MessageListItem","odata.id":"9afa3cd5-a6a1-40e7-a484-f608676096f3","odata.etag":"\"1\"","odata.editLink":"Web/Lists(guid'92804422-bd9e-4d7b-baf0-5c2de0953b95')/Items(2)","Id":2,"Title":"gf","Mesage":"fgf","Description":"gfgf","Priority":"High","ID":2},{"odata.type":"SP.Data.MessageListItem","odata.id":"df2c06fd-46b9-4a68-b2d5-563f64c8743d","odata.etag":"\"1\"","odata.editLink":"Web/Lists(guid'92804422-bd9e-4d7b-baf0-5c2de0953b95')/Items(3)","Id":3,"Title":"gfgf","Mesage":"fgf","Description":"fggf","Priority":"Medium","ID":3},{"odata.type":"SP.Data.MessageListItem","odata.id":"986dc67a-44d3-4c36-8e56-9c93f81107f2","odata.etag":"\"1\"","odata.editLink":"Web/Lists(guid'92804422-bd9e-4d7b-baf0-5c2de0953b95')/Items(4)","Id":4,"Title":"fgfg","Mesage":"gf","Description":"gff","Priority":"Medium","ID":4},{"odata.type":"SP.Data.MessageListItem","odata.id":"d33b78da-1493-4d2c-a7b6-8afaa0503506","odata.etag":"\"2\"","odata.editLink":"Web/Lists(guid'92804422-bd9e-4d7b-baf0-5c2de0953b95')/Items(5)","Id":5,"Title":"fgf","Mesage":null,"Description":null,"Priority":"Low","ID":5},{"odata.type":"SP.Data.MessageListItem","odata.id":"4e65919d-2ec4-480a-a803-a9fdba355c32","odata.etag":"\"1\"","odata.editLink":"Web/Lists(guid'92804422-bd9e-4d7b-baf0-5c2de0953b95')/Items(6)","Id":6,"Title":"gfg","Mesage":"dfd","Description":"fdf","Priority":"Medium","ID":6},{"odata.type":"SP.Data.MessageListItem","odata.id":"d9c50d4f-7fea-49fe-9389-1b8f547c1cb0","odata.etag":"\"1\"","odata.editLink":"Web/Lists(guid'92804422-bd9e-4d7b-baf0-5c2de0953b95')/Items(7)","Id":7,"Title":"dfdfd","Mesage":"ff","Description":"fgfg","Priority":"Medium","ID":7},{"odata.type":"SP.Data.MessageListItem","odata.id":"6d82e510-13b0-4a17-abbe-d19117063de6","odata.etag":"\"1\"","odata.editLink":"Web/Lists(guid'92804422-bd9e-4d7b-baf0-5c2de0953b95')/Items(8)","Id":8,"Title":"rt","Mesage":"ggf","Description":"fgd","Priority":"Low","ID":8}]}

我只需选择 ID 标题说明优先级字段。
我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

有很多种方法可以在c#中解析JSON,其中一种方法是使用Newtonsoft.JSON

您需要使用Nuget Package安装它。

然后你需要为你的JSON创建模型。

public class Value
{
  [JsonProperty("odata.type")]
  public string odata_type { get; set; }
  [JsonProperty("odata.id")]
  public string odata_id { get; set; }
  [JsonProperty("odata.etag")]
  public string odata_etag { get; set; }
  [JsonProperty("odata.editLink")]
  public string odata_editLink { get; set; }
  public int Id { get; set; }
  public string Title { get; set; }
  public string Mesage { get; set; }
  public string Description { get; set; }
  public string Priority { get; set; }
  public int ID { get; set; }
}

public class Response
{
   [JsonProperty("odata.metadata")]
   public string odata_metadata { get; set; }
   public List<Value> value { get; set; }
}

解析逻辑

Response response = JsonConvert.DeserializeObject<Response>(json); //json is your json string

希望它有所帮助!!