【发布时间】:2016-05-13 13:14:15
【问题描述】:
假设我有一个 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 字符串作为其值的字段(恶心,但超出我的控制),因此嵌套字符转义等让我部分发疯在我决定在这里寻求帮助之前。
这应该很简单吧?有人指点吗?
【问题讨论】:
-
为什么不想使用 Json.NET?您可以反序列化为 JSON 数组,然后循环遍历数组中的每个对象并将其序列化为字符串,然后将它们放入列表或您拥有的内容中。
-
我认为反序列化为
object(而不是定义所有预期字段的类),然后进行序列化,会导致字段丢失。一开始我考虑了一会儿,然后立即驳回了这个想法,因为“显然行不通”。猜猜鸡蛋在我脸上:)
标签: c# .net json serialization json.net