gpt4 book ai didi

c# - 将 JSON 对象属性反序列化为字符串

转载 作者:太空狗 更新时间:2023-10-29 21:17:10 24 4
gpt4 key购买 nike

我有一些具有多种属性的 JSON,其中大部分是简单数据类型。但是,我在 JSON 中有一个属性,当我将它反序列化为 C# 类时,我只需要将它反序列化为一个字符串。

示例 JSON:

{"simpleProperty": "value1", "json":{"a":"a1", "b":"b1"}}

“json”对象除了是一个有效的 JSON 对象外没有固定结构。

所以在上面的例子中,“json”的值是一个 JSON 对象——但是当它被反序列化时,我需要它作为一个字符串。

所以如果我的 C# 类是:

public class MyClass
{
public string SimpleProperty { get; set; }
public string Json { get; set; }
}

然后如果我使用:

var myClass = JsonConvert.DeserializeObject<MyClass>(jsonStr);

我希望 myClass.Json 只是一个简单的字符串。

我已经研究过为此创建一个自定义 JsonConverter,但对于这么简单的事情来说,这似乎太复杂了。我一定是在这里遗漏了什么。任何方向将不胜感激。

我也看到了这篇文章——但它确实没有回答问题:JSON.Net - How to deserialize JSON to object but treating a property as a string instead of JSON?

最佳答案

您也可以为该属性使用 JToken 类型,以指示任何有效的 JSON 都可以到达那里。虽然这不完全符合您的要求,但可能就足够了。

public class MyClass
{
public string SimpleProperty { get; set; }
public JToken Json { get; set; }
}

然后执行 myClass.Json.ToString() 将以 string 的形式为您提供 JSON。

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

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