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

C# 在匹配字符串后第一次出现字符时拆分字符串,c#,arrays,json,string,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对象列表,格式如上面所示,我需要在两个

数据:

{ 
    \"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序列化到一个列表中之外,还有其他方法可以做到这一点吗

我试图将数据放入字符串数组,如:

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

请注意,上面的数据实际上都在一行中,没有任何换行符、制表符或其他内容。我在上面对其进行了组织,以使其更具可读性。

编写自己的解析器将是一件棘手的事情。如果您使用JSON解析器,那么就容易多了。您的格式不是有效的JSON,但它将使用周围的
[]
格式。因此,如果插入这些字符,您应该能够使用真正的解析器:

using Newtonsoft.Json

// ...

var objects = JsonConvert.DeserializeObject<List<SomeClass>>("[" + json + "]");
使用Newtonsoft.Json
// ...
var objects=JsonConvert.DeserializeObject(“[”+json+“]”);

编写自己的解析器会很棘手。如果您使用JSON解析器,那么就容易多了。您的格式不是有效的JSON,但它将使用周围的
[]
格式。因此,如果插入这些字符,您应该能够使用真正的解析器:

using Newtonsoft.Json

// ...

var objects = JsonConvert.DeserializeObject<List<SomeClass>>("[" + json + "]");
使用Newtonsoft.Json
// ...
var objects=JsonConvert.DeserializeObject(“[”+json+“]”);

我想说,对于所需的工作,您不妨将其反序列化。列表中有多少个对象?如果少于几百个,那么反序列化它的工作量是最小的,每个json对象都在一行中,就像在您的示例中一样吗?我想说,对于所需的工作,您也可以反序列化它。列表中有多少个对象?如果少于几百个,那么反序列化它的工作量是最小的,每个json对象都在一行中,就像在您的示例中一样吗?结果确实太棘手了。虽然我没有使用Newtonsoft.Json,而是选择了JavascriptSerializer,但这是最好的方法+1.关于支架的提示。结果确实太棘手了。虽然我没有使用Newtonsoft.Json,而是选择了JavascriptSerializer,但这是最好的方法+1有关支架的提示。