将多个对象添加到同一JSON字符串

时间:2014-11-26 15:36:21

标签: json vb.net json.net

嘿所有我想要输出多个JSON输出值。在XML中,它看起来像这样:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<EmployeeInformation>
  <EmployeeInfo>
    <lastName>Bob</lastName>
    <firstName>Barker</firstName>
    <eMail>bob_barker@theGameShow.com</eMail>
    <badgeID>760013224</badgeID>
  </EmployeeInfo>
  <EmployeeInfo>
    <lastName>John</lastName>
    <firstName>Doe</firstName>
    <eMail>jDoe@somewhere.com</eMail>
    <badgeID>0162000037467</badgeID>
  </EmployeeInfo>
</EmployeeInformation>

我想在JSON中遵循相同的结构。但是,我目前只得到这个输出:

{
  "lastName": "Barker",
  "firstName": "Bob",
  "eMail": "bob_barker@theGameShow.com",
  "badgeID": "760013224",
}{
  "lastName": "Doe",
  "firstName": "John",
  "eMail": "jDoe@somewhere.com",
  "badgeID": "0162000037467",
}

从这里的代码:

Dim json As String = ""

empInfo.firstName = "Bob"
empInfo.lastName = "Barker"
empInfo.eMail = "bob_barker@theGameShow.com"
empInfo.badgeID = "760013224"

json = JsonConvert.SerializeObject(empInfo, Formatting.Indented)

empInfo.firstName = "John"
empInfo.lastName = "Doe"
empInfo.eMail = "jDoe@somewhere.com"
empInfo.badgeID = "0162000037467"

json &= JsonConvert.SerializeObject(empInfo, Formatting.Indented)

那么我将如何使用JSON.net将其结构化为XML?

1 个答案:

答案 0 :(得分:2)

不是单独序列化每个员工对象,而是需要将员工对象添加到列表中,然后序列化列表:

Dim employees As New List(Of EmployeeInfo)
Dim empInfo As EmployeeInfo

empInfo = New EmployeeInfo()
empInfo.firstName = "Bob"
empInfo.lastName = "Barker"
empInfo.eMail = "bob_barker@theGameShow.com"
empInfo.badgeID = "760013224"
employees.Add(empInfo)

empInfo = New EmployeeInfo()
empInfo.firstName = "John"
empInfo.lastName = "Doe"
empInfo.eMail = "jDoe@somewhere.com"
empInfo.badgeID = "0162000037467"
employees.Add(empInfo)

Dim json As String = JsonConvert.SerializeObject(employees, Formatting.Indented)
Console.WriteLine(json)

输出:

[
  {
    "firstName": "Bob",
    "lastName": "Barker",
    "eMail": "bob_barker@theGameShow.com",
    "badgeID": "760013224"
  },
  {
    "firstName": "John",
    "lastName": "Doe",
    "eMail": "jDoe@somewhere.com",
    "badgeID": "0162000037467"
  }
]

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