在C語言中,請問如何將一個包含json陣列的字串分解成一個每個元素為json字串的陣列?謝謝!
字串的一個例子如下。
var string = " [{"/span>id": 111, "value: 22, "timestamp": "2021-09-20T02:34:17。 000Z"},{"/span>id": 112, "value_1": 23, "value_2": 24, "timestamp": "2021-09-20T02:33:17。 000Z"}]"
我想得到一個陣列,如下所示。
var messages = new[] 。
{
@"{'id': 111, 'value': 22, 'timestamp': '2021-09-20T02:34:17.000Z'}",
@"{'id': 112, 'value_1': 23, 'value_2' : 24, 'timestamp': '2021-09-20T02:33:17.000Z'}"
}.AsEnumerable()。
我試圖使用JsonConvert.DeserializeObject(string),但它不作業,出現了錯誤決議值時遇到了意外的字符。[.
謝謝!
uj5u.com熱心網友回復:
這就是你想要的?
這就是你想要的?
using System;
using System.Linq;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
string input = " [{"id": 111, "value": 22, "timestamp": "2021 - 09 - 20T02: 34:17.000Z"},{"id": 112, "value_1": 23, "value_2": 24, "timestamp": "2021 - 09 - 20T02: 33:17.000Z"}]"/span>。
//將Json讀入JArray。
JArray array = JArray.Parse(input)。
//將每個嵌套物件序列化為字串陣列。
string[] = array.Select((a) => JsonConvert.SerializeObject(a)).ToArray()。
foreach (string line in output)
Console.WriteLine(line)。
輸出:
{"id":111, "value": 22,"timestamp":"2021 - 09 - 20T02: 34: 17. 000Z"}。
{"id":112,"value_1":23,"value_2"。 24,"timestamp":"2021 - 09 - 20T02: 33: 17. 000Z"}。
uj5u.com熱心網友回復:
錯誤的原因之一可能是你對json文本中的物件使用了不同的名字。例如。value和value_2
如果值超過一個并且是動態的,那么在陣列中指定它是比較方便的。 就像這樣。
{'id'/span>: 112, ['value_1'/span>: 23, 'value_2' : 24] , 'timestamp': '2021-09-20T02:33:17.000Z'}
為此,你需要編輯json文本,然后根據它來調整物件。
試一試吧
JsonConvert.DeserializeObject<MyObject>("//Your Json string") 。
將給定的Json文本轉換為你給出的物件。如果Json和物件不同,它將拋出一個錯誤。look here
感謝USEFUL的反饋,如果它對你有用的話
。轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/333684.html
標籤:
下一篇:如何使用其他類中的函式
