[英]C# - How to decode a json array that does not contain any assignments
我收到一個需要解碼的 json 數組:
[143084,[8906.3,24.990013919999996,8906.8,32.58931742,-32.6,-0.0036,8907,7171.16062768,9075,8620]]
它似乎是一個有效的 json 數組,但我不知道如何解碼它。 通常我使用:
JsonConvert.DeserializeObject<object>(json);
但這在這里不起作用,因為 json 代碼沒有“分配”,因為缺少更好的詞。 它應該是這樣的:
{
"channelId":"456456564",
"values":[ "8906.3,24.990013919999996,8906.8,32.58931742,-32.6,-0.0036,8907,7171.16062768,9075,8620" ]
}
我什至不知道谷歌是為了什么,因為我不知道正確的詞
"channelId":
所有示例都使用看起來“正常”的 json arrays:/ 抱歉這個含糊的問題:/
任何幫助將不勝感激! 謝謝!
感謝 Daniel A. White!
我最終這樣做了:
message = message.Replace("[", "");
message = message.Replace("]", "");
var array = message.Split(',');
它為我提供了單級數組,我現在可以將其轉換為我需要的 object。 可能不漂亮,但有效。 謝謝丹尼爾!
你可以有一個像這樣的 function
var jsonArray = @"[143084,[8906.3, 24.990013919999996, 8906.8, 32.58931742, -32.6, -0.0036, 8907, 7171.16062768, 9075, 8620]]";
var deserializedArray = JArray.Parse(jsonArray);
var result = new MyObject
{
channelId = deserializedArray.First.ToString(),
values = JsonConvert.SerializeObject(deserializedArray.Last)
};
return result;
MyObject 看起來像這樣:
public class MyObject
{
public string channelId { get; set; }
public string values { get; set; }
}
這會產生結果:
{
"channelId": "143084",
"values": "[8906.3,24.990013919999996,8906.8,32.58931742,-32.6,-0.0036,8907,7171.16062768,9075,8620]"
}
我認為您有兩種選擇
1) 創建一個視圖 model class 代表這個
public class ViewModel
{
public string channelId { get; set; }
public string[] values { get; set; }
}
我正在考慮 json 中的值是具有一個值的字符串數組。
2) 像本例一樣使用 JObject class
https://www.newtonsoft.com/json/help/html/M_Newtonsoft_Json_Linq_JObject_Parse.htm
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.