gpt4 book ai didi

c# - 将 JSON 数组反序列化为字符串数组

转载 作者:行者123 更新时间:2023-11-30 13:06:13 26 4
gpt4 key购买 nike

假设我有一个 string 表示一个 JSON 形式的对象数组:

string s = "[{\"name\":\"Person1\"},{\"name\":\"Person2\"}]";

我想要的是一个字符串数组,每个字符串都是 JSON 对象的字符串表示 - 不是对象本身。它应该看起来像这样:

string[] s = new string[]
{
"{\"name\":\"Person1\"}",
"{\"name\":\"Person2\"}"
};

1) 几乎我尝试的每一次搜索都会得到数百万条关于如何使用(例如)Json.NET 简单地反序列化 JSON 字符串的结果。这不是我想做的

2) 我已经尝试构建一个表示对象的类,以通过反序列化/序列化将每个对象映射到数组中的字符串来临时循环,但是对象的模式是可变的(因此我只需要一个字符串表示)。

3) 我已经尝试了一些正则表达式来尝试执行此操作,但我的 JSON 字符串可以包含包含 JSON 字符串作为其值的字段(恶心,但不受我控制),因此嵌套字符转义等让我有点生气在我决定在这里求助之前。

这应该很简单吧?有人有任何指示吗?

最佳答案

您需要对其进行反序列化,然后分别对每个对象进行序列化。例如(使用 Newtonsoft.Json):

string json = "[{\"name\":\"Person1\"},{\"name\":\"Person2\"}]";

var objects = JsonConvert.DeserializeObject<List<object>>(json);
var result = objects.Select(obj => JsonConvert.SerializeObject(obj)).ToArray();

产量(作为 string[]):

{"name":"Person1"} 
{"name":"Person2"}

如果您尝试避免反序列化和序列化,您几乎肯定会遇到会破坏您的代码的边缘情况。

关于c# - 将 JSON 数组反序列化为字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35192323/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com