2017-07-28 69 views
0

我需要从服务器返回的数据将与“数据”属性,并返回什么JsonConvert.SerializeObject()没有。我如何转换它?如何解析JSON到具有属性的对象

来源:

{ 
    "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#中太,我会转换)。

+1

简单地把你的对象阵列之前' JsonConvert.SerializeObject()' – codtex

+0

https://stackoverflow.com/questions/26795643/how-to-convert-object-containing-objects-into-array-of-objects这可能有助于 – soverflow77

回答

1

的模型。如果你开始用的一个实例你的模型类,你可以把它包装在一个匿名的对象,并序列化:

Dim anon = New With {.data = New List(Of Model) From {model}} 
Dim json As String = JsonConvert.SerializeObject(anon, Formatting.Indented) 

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


如果你已经从一个JSON字符串,则可以使用变换成为一个JObject

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

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

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; } 
} 
+0

仍然没有得到“名称”propery 。现在看起来像这样:[{“status”:2,“transactionId”:12345,“creditCardNumber”:“1234324324”,“supplier”:“Office Depot”,“createdAt”:“2008-12-28T00:00: 00" , “量”:500.0}] –