相关疑难解决方法(0)

我可以在属性中指定路径以将我的类中的属性映射到我的JSON中的子属性吗?

有些代码(我无法更改)使用Newtonsoft.Json DeserializeObject<T>(strJSONData)从Web请求中获取数据并将其转换为类对象(我可以更改类).通过使用我的类属性进行装饰,[DataMember(Name = "raw_property_name")]我可以将原始JSON数据映射到我的类中的正确属性.有没有办法可以将JSON复杂对象的子属性映射到一个简单的属性?这是一个例子:

{
    "picture": 
    {
        "id": 123456,
        "data": 
        {
            "type": "jpg",
            "url": "http://www.someplace.com/mypicture.jpg"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

除了URL之外,我不关心任何其他图片对象,因此不想在我的C#类中设置复杂对象.我真的只想要这样的东西:

[DataMember(Name = "picture.data.url")]
public string ProfilePicture { get; set; }
Run Code Online (Sandbox Code Playgroud)

这可能吗?

c# json json.net deserialization

44
推荐指数
4
解决办法
2万
查看次数

JSON.NET 反序列化存储为属性的 JSON 对象

我有一条 JSON 消息要使用包含另一个对象的 JSON 的字符串属性进行反序列化。我有以下课程

public class Envelope
{
    public string Type { get; set; }
    public Message InnerMessage { get; set; }
}

public class Message
{
    public string From { get; set; }
    public string To { get; set; }
    public string Body { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我收到的 JSON 消息采用以下格式:

{
    Type : "send",
    InnerMessage : "{ From: \"sender\", To: \"receiver\", Body: \"test\" }"
}
Run Code Online (Sandbox Code Playgroud)

请注意,它InnerMessage包含类的序列化Message,而不是类的 JSON。

InnerMessage如果我将属性的类型保留为Message,标准 JSON.NET 反序列化将失败。 …

c# json json.net deserialization

3
推荐指数
1
解决办法
8976
查看次数

Json.net反序列化返回一个空对象

我正在使用下面的代码进行序列化。

var json = JsonConvert.SerializeObject(new { summary = summary });
Run Code Online (Sandbox Code Playgroud)

summary是类型的自定义对象SplunkDataModel

public class SplunkDataModel
{
    public SplunkDataModel() {}

    public string Category { get; set; }
    public int FailureCount { get; set; }
    public Dictionary<string, SplunkError> FailureEntity { get; set; }
    public Dictionary<string, string> JobInfo { get; set; }
    public string JobStatus { get; set; }
    public int SuccessCount { get; set; }
    public List<string> SuccessEntity { get; set; }
    public int TotalCount { get; set; }
} …
Run Code Online (Sandbox Code Playgroud)

c# json json.net

2
推荐指数
2
解决办法
5369
查看次数

标签 统计

c# ×3

json ×3

json.net ×3

deserialization ×2