[英]Convert JSON String to C# Object For Complex JSON String
我正在嘗試將JSON字符串轉換為C#對象,但是我得到的是空值
以下是我擁有的JSON字符串
[
{
"extraction_method": "stream",
"top": 0.0,
"left": 0.0,
"width": 559.0,
"height": 732.2100219726562,
"data": [[
{
"top": 0.0,
"left": 0.0,
"width": 0.0,
"height": 0.0,
"text": ""
},
{
"top": 96.36,
"left": 129.27,
"width": 102.97900390625,
"height": 6.550000190734863,
"text": "Sample"
},
{
"top": 96.35,
"left": 311.0,
"width": 27.188995361328125,
"height": 6.550000190734863,
"text": "PT"
},
{
"top": 96.35,
"left": 361.0,
"width": 41.248992919921875,
"height": 6.550000190734863,
"text": "HT"
},
{
"top": 96.36,
"left": 432.11,
"width": 28.141387939453125,
"height": 6.550000190734863,
"text": "RT."
},
{
"top": 96.36,
"left": 480.88,
"width": 29.64898681640625,
"height": 6.550000190734863,
"text": "LT."
},
{
"top": 96.36,
"left": 522.33,
"width": 36.660003662109375,
"height": 6.550000190734863,
"text": "MT"
}
], [
{
"top": 727.57,
"left": 75.24,
"width": 14.902000427246094,
"height": 4.619999885559082,
"text": "Tee"
},
{
"top": 0.0,
"left": 0.0,
"width": 0.0,
"height": 0.0,
"text": ""
},
{
"top": 727.57,
"left": 315.0,
"width": 14.00201416015625,
"height": 4.619999885559082,
"text": "IO."
},
{
"top": 727.59,
"left": 381.43,
"width": 16.6820068359375,
"height": 4.619999885559082,
"text": "1.10"
},
{
"top": 727.59,
"left": 434.53,
"width": 25.582000732421875,
"height": 4.619999885559082,
"text": "30.00"
},
{
"top": 727.59,
"left": 488.98,
"width": 21.131988525390625,
"height": 4.619999885559082,
"text": "8.00"
},
{
"top": 727.59,
"left": 534.53,
"width": 24.469959259033203,
"height": 4.619999885559082,
"text": "18.00"
}
]],
"spec_index": 0
}
]
和JSON對象的類
public class JsonHelper
{
string top { get; set; }
string left { get; set; }
string width { get; set; }
string height { get; set; }
string text { get; set; }
}
public class RootObject
{
public string extraction_method { get; set; }
public double top { get; set; }
public double left { get; set; }
public double width { get; set; }
public double height { get; set; }
public List<List<JsonHelper>> data { get; set; }
public int spec_index { get; set; }
}
下面的代碼用於獲取對象
using (StreamReader r = new StreamReader(@"SamplePDF.json"))
{
string json = r.ReadToEnd();
List<RootObject> items =
JsonConvert.DeserializeObject<List<RootObject>>(json);
}
但是我得到的是,對象中的空值如下(如果未在下面顯示圖像,則在新選項卡中打開圖像),
同樣讓我知道,謝謝
無法訪問以下屬性,以下是更改。 感謝@John。
public class JsonHelper
{
string top { get; set; }
string left { get; set; }
string width { get; set; }
string height { get; set; }
string text { get; set; }
}
您可以為它們提供默認值,例如:
public int X { get; set; } = 0;
public string Y { get; set; } = "";
您的課程看起來與JSON字符串的格式不匹配,請嘗試以下操作
然后JSON.Net將匹配Object和JSON字符串
我已經嘗試過您的示例JSON字符串,並且像這樣通過第4步創建了對象
public class Rootobject
{
public Class1[] Property1 { get; set; }
}
public class Class1
{
public string extraction_method { get; set; }
public float top { get; set; }
public float left { get; set; }
public float width { get; set; }
public float height { get; set; }
public Datum[][] data { get; set; }
public int spec_index { get; set; }
}
public class Datum
{
public float top { get; set; }
public float left { get; set; }
public float width { get; set; }
public float height { get; set; }
public string text { get; set; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.