如何将JSON解析为具有属性的Object

时间:2017-07-28 09:44:35

标签: c# json vb.net json.net

我需要从服务器返回的数据将使用" data"属性,以及JsonConvert.SerializeObject()返回没有的内容。我该如何转换它?

自:

{
    "name": "Tiger Nixon",
    "position": "System Architect",
    "salary": "$320,800",
    "start_date": "2011/04/25",
    "office": "Edinburgh",
    "extn": "5421"
}

要:

{
    "data": [{
        "name": "Tiger Nixon",
        "position": "System Architect",
        "salary": "$320,800",
        "start_date": "2011/04/25",
        "office": "Edinburgh",
        "extn": "5421"
    }]
}

在VB.net中(也可以在C#中进行转换)。

2 个答案:

答案 0 :(得分:1)

您可以将其解析为数组,然后将其序列化为

Model[] data = JObject.Parse(json_string).ToObject<Model[]>();

考虑您有一个与您的JSON字符串关联的模型

public class Model
{
    public string name { get; set; }
    public string position { get; set; }
    public string salary { get; set; }
    public string start_date { get; set; }
    public string office { get; set; }
    public string extn { get; set; }
}

答案 1 :(得分:1)

如果您从模型类的实例开始,您可以将其包装在匿名对象中并序列化:

Dim jo As JObject = JObject.Parse(json)
jo = New JObject(New JProperty("data", New JArray(jo)))
json = jo.ToString()

小提琴:https://dotnetfiddle.net/45RtrC

如果您以JSON字符串开头,可以使用JObject对其进行转换:

ListItem

小提琴:https://dotnetfiddle.net/ezP6QR