如何在C#中将json字符串转换为对象

时间:2017-02-20 14:10:52

标签: c# asp.net json

这是一天刮挠我的脑袋&谷歌搜索如何将json字符串转换为对象。

这是我的json。

   {
"statusCode": 200,
"data": {
"items": [
  {
    "id": 2623,
    "JsonData": "{\"Number\":143,\"IsDeleted\":false,\"GapAnalysisChecked\":false,\"ShowGraphics\":true,\"Impact\":{\"Value\":\"DefaultNodeTitle_Impact\",\"Details\":null,\"DefaultValue\":\"DefaultNodeTitle_Impact\",\"Id\":\"0a507b25-cf0f-4ee3-8262-76b29adbda4e\"},\"Gap\":{\"Value\":\"DefaultNodeTitle_Gap\",\"Details\":null,\"DefaultValue\":\"DefaultNodeTitle_Gap\",\"Id\":\"cd411a47-a215-4dda-a8af-19686ad0d090\"}"}]
}

}

我需要将JsonData转换为单个对象。

var obj = JsonConvert.DeserializeObject(res.JsonData);
res.JsonData = obj; //this is giving error.- Cannot convert implicilty string to an object

与此同时,我尝试了DeserializeObject<Customer>()&amp;的排列数量。所有这些事情。

我想要的输出。

{
"statusCode": 200,
"data": {
"items": [
  {
    "id": 2623,
    "JsonData": object
}

MY DTO

public class Res
{
  public string StatusCode {get;set;}

  public string JsonData {get; set;}
}

任何帮助/建议都非常感谢。
感谢。

2 个答案:

答案 0 :(得分:9)

你错过了“]”

修改

一种可能的实现方式是:

你的课程

public class Res{

   public string statusCode {get;set;}
   public Data data {get; set;}


}


 public class Data{

  public List<Item> items {get; set;}

  }


 public class Item{

    public string id {get; set;}
    public JsonData JsonData {get;set;}

}

 public class JsonData{

    public string name {get; set;}
    public string from {get; set;}
 }

你的json

{
"statusCode":200,
"data" :
     {
       "items" :
           [
             {
              "id":2623,
              "JsonData" :{
               "name":"joab",
               "from":"Brazil"}
               },
               {
               "id":2624,
               "JsonData": {
               "name":"mary",
               "from":"USA"
               }
             }
          ]
     }
}

var res = new JavaScriptSerializer().Deserialize<Res>(yourjson);

答案 1 :(得分:0)

1 - 添加新班级
2 - 复制你的json
3 - Visual Studio菜单&gt;编辑&gt;选择性粘贴&gt;将JSON粘贴为类

See