請教下各位
{\"log_id\":7616486206799412622,\"results\":[{\"location\":{\"height\":543,\"left\":1312,\"top\":644,\"width\":669},\"name\":\"1234\",\"score\":1}]}\n"}
{\"log_id\":1587313827561704838,\"results\":[]}\n"}
如果第二潭訓傳值的話就報錯誤
代碼:
JavaScriptSerializer js = new JavaScriptSerializer(); //實體化一個能夠序列化資料的類
ToJsonMy3 list = js.Deserialize<ToJsonMy3>(resulte); //將json資料轉化為物件型別并賦值給list
string log_id = list.log_id;
List<results> orderdetail = list.results;
string name = orderdetail[0].name;
string score = orderdetail[0].score;
public struct ToJsonMy3
{
public string log_id { get; set; }
public List<results> results;//陣列處理
// public results results;
}
public struct results
{
public string name { get; set; }
public string score { get; set; }
public List<location> location;//陣列處理
}
public struct location
{
public string top { get; set; }
public string left { get; set; }
public string width { get; set; }
public string height { get; set; }
}
謝謝各位 該如何處理
uj5u.com熱心網友回復:
你要看你json串是不是真的包含了\n,并且第二條和第一條之間應該有個逗號[{"log_id":7616486206799412622,"results":[{"location":{"height":543,"left":1312,"top":644,"width":669},"name":"1234","score":1}]},
{"log_id":7616486206799412622,"results":[{"location":{"height":543,"left":1312,"top":644,"width":669},"name":"1234","score":1}]}]
uj5u.com熱心網友回復:
說錯了,是2種回傳結果1: {"log_id":1594288546244956330,"results":[]}
2: {"log_id":30078127253539397,"results":[{"location":{"height":543,"left":1312,"top":644,"width":669},"name":"cat","score":0.9970706701278687}]}
回傳引數
欄位 是否必選 型別 說明
log_id 是 number 唯一的log id,用于問題定位
results 否 array(object) 識別結果陣列
+name 否 string 分類名稱
+score 否 number 置信度
+location 否
++left 否 number 檢測到的目標主體區域到圖片左邊界的距離
++top 否 number 檢測到的目標主體區域到圖片上邊界的距離
++width 否 number 檢測到的目標主體區域的寬度
++height 否 number 檢測到的目標主體區域的高度
results 空的話報錯
uj5u.com熱心網友回復:
反序列化顯然不會報錯而是第二種實際里面是沒有資料的
List<results> orderdetail = list.results;
string name = orderdetail[0].name;
string score = orderdetail[0].score;
這個orderdetail 里面沒有元素 自然不能orderdetail[0]
uj5u.com熱心網友回復:

沒問題的
uj5u.com熱心網友回復:
string name = orderdetail[0].name;string score = orderdetail[0].score;
這個orderdetail 里面沒有元素 自然不能orderdetail[0]
那怎么處理呢?判斷增加?沒有元素的話 NAME=""
uj5u.com熱心網友回復:
用newtonsoft有個忽略空值的引數uj5u.com熱心網友回復:
能給下參考代碼嗎?
uj5u.com熱心網友回復:

當然報錯了。。。都不是json 資料 格式!。。 json 是鍵值對 模式的。。。自己好好檢查下資料!!!!!!!!!你的資料都不是json 型別的 string 資料。。。。 就是一個 string 資料 、、!!!!!!!!檢查資料
uj5u.com熱心網友回復:
請問下怎么將字串json格式資料轉換成物件
{"log_id":30078127253539397,"results":[{"location":{"height":543,"left":1312,"top":644,"width":669},"name":"cat","score":0.9970706701278687}]}
獲取到log_id、height、left、top、width、name、score的值
uj5u.com熱心網友回復:
r2.log_idr2.result[0].height
uj5u.com熱心網友回復:
可以的。這個。
如果你不想定義物體類,你用
dynamic 型別直接反序列化也可以的。
uj5u.com熱心網友回復:
先判斷一下:if (orderdetail.Count > 0)
{
string name = orderdetail[0].name;
string score = orderdetail[0].score;
}
uj5u.com熱心網友回復:
或者 string name = orderdetail.Count > 0 ? orderdetail[0].name : "";string score = orderdetail.Count > 0 ? orderdetail[0].score : "";
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/121452.html
標籤:C#
下一篇:自動登錄系統后不會執行余下動作
