如何构建jsob数据?

时间:2016-03-12 10:59:32

标签: java json

在我的项目中,我收到了json数据:

[{"mobileNumbers":[{"number":"+9999999999","type":"TYPE_MOBILE"}]},
{"mobileNumbers":[{"number":"+9999999999","type":"TYPE_MOBILE"}]}]

但我想要如下:

[{"number":"+9999999999","type":"TYPE_MOBILE"},
{"number":"+9999999999","type":"TYPE_MOBILE"}]

我有联系班: -

联系班级

public class Contact {

  private List<ContactMobile> mobileNumbers;

  public Contact() {
  }


  public List<ContactMobile> getMobileNumbers() {
    return mobileNumbers;
  }

  public void setMobileNumbers(List<ContactMobile> mobileNumbers) {
    this.mobileNumbers = mobileNumbers;
  }

}

我有联系移动课程

public class ContactMobile {


  private String type;
  private String number;

  public ContactMobile() {
  }

  public ContactMobile(String type, String number) {
    super();
    this.type = type;
    this.number = number;

  }
//setters and getters....
}

这里我设置了获取json数据:

List<ContactMobile> mobiles = new ArrayList<ContactMobile>();
List<Contact> contacts = new ArrayList<Contact>();
//here mobiletype and number is the data I am putting..
ContactMobile contactMobile = new ContactMobile(mobiletype, number);

Contact contact = new Contact();

contact.setMobileNumbers(mobiles);
contacts.add(contact);

我在做错的地方???为什么我没有收到我的欲望输出?请各位建议我......

1 个答案:

答案 0 :(得分:0)

大多数(如果不是全部)用于Java中JSON序列化/反序列化的库(例如Jackson)默认以这种方式工作,因此您看到的输出是一致的。

例如,如果使用默认配置序列化使用Jackson的Contact类型的对象,则应该得到:

{
  "mobileNumbers": [
    {"type": ..., "number": ... },
    {"type": ..., "number": ... },
    ...
  ]
}

其中:

  1. 您正在序列化的Contact对象被映射到由最外部花括号表示的JSON对象;
  2. &#34; mobileNumbers&#34; Contact对象的列表映射到与键&#34; mobileNumbers&#34;;
  3. 关联的JSON数组。
  4. &#34; mobileNumbers&#34;中的每个ContactMobile对象Contact对象的列表分别映射到具有两个键的JSON对象&#34; type&#34;和&#34;号码&#34;。
  5. 现在,回答你的问题:

      

    但我想要如下:

         

    [{&#34;数&#34;:&#34 + 9999999999&#34;&#34;类型&#34;:&#34; TYPE_MOBILE&#34;},   {&#34;数&#34;:&#34 + 9999999999&#34;&#34;类型&#34;:&#34; TYPE_MOBILE&#34;}]

    你需要做的就是序列化&#34; mobileNumbers&#34; Contact对象的列表,而不是完整的Contact对象。如何做只取决于您当前使用的库。

    我希望有所帮助!