匹配字符串后,在第一次出现字符时拆分字符串

时间:2016-03-31 22:24:24

标签: c# arrays json string

数据:

{ 
    \"value\": 17.11, \"year\": 2015, \"sub\": [ {\"x\": 0, \"y\": 0.94 }, {\"x\": 1, \"y\": 1.08 }] 
}
, 
{ 
    \"value\": 17.23, \"year\": 2015, \"sub\": [ {\"x\": 0, \"y\": 0.23 }, {\"x\": 1, \"y\": 1.22 }] 
} 

我有一个你上面看到的格式的JSON对象列表,我需要在两个对象之间的','处拆分对象。问题是文件中还有其他逗号。除了实际将JSON序列化为List之外,还有其他方法可以完成这项工作吗?

我正在尝试将数据转换为字符串数组,如:

string[] split = json.split(',');

请注意,上面的数据实际上都是一行,没有任何换行符,标签或任何内容。我在上面组织它以使其更具可读性。

1 个答案:

答案 0 :(得分:2)

编写自己的解析器会很棘手。如果使用JSON解析器会更容易。您的格式无效JSON,但它与周围的[]有关。因此,如果您插入这些字符,您应该能够使用真正的解析器:

using Newtonsoft.Json

// ...

var objects = JsonConvert.DeserializeObject<List<SomeClass>>("[" + json + "]");