【发布时间】:2019-05-14 18:33:51
【问题描述】:
我有一个 JSON 字符串,我想一口气将其反序列化为 C#。
SalesLines 的 Children 节点是一个字符串表示形式。当我反序列化时,我希望对象一直向下。使用 JSON.NET 的最佳方法是什么?
{
"value":[
{
"documentType":"Quote",
"SONumber":"S-QUO1001",
"SalesLines":"[{\"SONumber\":\"S-QUO1001\",\"LineNum\":10000,\"ItemId\":\"1936-S\",\"ItemAttributes\":[{\"AttibuteName\":\"COLOR\",\"AttributeValue\":\"YELLOW\"},{\"AttibuteName\":\"DEPTH\",\"AttributeValue\":\"100\"},{\"AttibuteName\":\"WIDTH\",\"AttributeValue\":\"120\"},{\"AttibuteName\":\"HEIGHT\",\"AttributeValue\":\"115\"},{\"AttibuteName\":\"MATERIAL DESCRIPTION\",\"AttributeValue\":\"COTTON, WOOD LEGS\"},{\"AttibuteName\":\"MODEL YEAR\",\"AttributeValue\":\"1940\"}]}]"
}
]
}
【问题讨论】:
-
如果您的 JSON 格式正确,您可以将
EmbeddedLiteralConverter<List<SalesLine>>从 How do I convert an escaped JSON string within a JSON object? 应用到您的SalesLines属性。 -
我已更新以包含有效的 json
-
好的,那么将
[JsonConverter(typeof(EmbeddedLiteralConverter<List<SalesLine>>)]应用到public List<SalesLine> SalesLines { get; set; }是否有效? -
为什么你有这个字符串表示,即 JSON 中的 JSON?这是一件很奇怪的事情。您是否能够更改生成此数据的代码以更好地执行此操作?那将是理想的解决方案
-
@ADyson 同意这是一个我无法控制的不幸事件。