.net - 在 Newtonsoft.Json 库中获取原始 json 字符串

标签 .net json json.net

我有这样的json

{
    "name": "somenameofevent",
    "type": "event",
    "data": {
        "object": {
            "age": "18",
            "petName": "18"
        },
        "desct": {
        }
    }
}

我有 2 个这样的对象
public class CustEvent
{
    [JsonProperty("name")]
    public string Name { get; set; }
    [JsonProperty("type")]
    public string EventType{ get; set; }
    [JsonProperty("data")]
    public SomeData Data{ get; set; }
}

public class SomeData
{
    [JsonProperty("object")]
    public String SomeObject { get; set;}
    [JsonProperty("dsct")]
    public String SomeDesct { get; set; }
}

我用来解析 json 对象 Newtonsoft.NET 库。以及如何将 RAW JSON 转换为 SomeObject 、 SomeDesct 属性?在 JSON 中,“data.object ...”是复杂的对象,我只想获取这些属性的 RAW JSON 字符串。你能帮助我吗 ?

最佳答案

您不需要编写任何转换器,只需使用 JRaw 键入如下:

public class SomeData
{
    [JsonProperty("object")]
    public JRaw SomeObject { get; set;}
    [JsonProperty("dsct")]
    public JRaw SomeDesct { get; set; }
}

然后您可以通过检查 .Value 来访问原始值。属性(property):
var rawJsonDesct = (string)data.SomeDesct.Value;

如果要保留string签名,只需将 JSON 序列化为隐藏属性,并在访问器调用中进行字符串转换。

关于.net - 在 Newtonsoft.Json 库中获取原始 json 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10757450/

相关文章:

c# - 使用 json.net 反序列化空正则表达式属性

c# - json.net : why is a null JToken replaced with a non-null value? 中的奇怪行为

wcf - Json.net 无法反序列化复杂类型列表

.net - DataGridTemplateColumn 中的 ElementName 绑定(bind)

javascript - 访问 JSON 对象详细信息

c# - 是否有示例说明为什么应在 NHibernate 中覆盖 Equals/GetHashCode?

java - 使用图形 API 获取用户相册中的照片的链接是什么?

javascript - 带有JSON返回的Jquery ajax无法访问JSON内部的数据

c# - 将类型的通用容器转换为继承类型的容器?

c# - RESTful API 中的向后兼容性