我的挑战是,我发现将字符串格式化为 json 数据非常困难和棘手,如下所示:
{
"contacts":[
{
"displayName" : "Michael"
},
{
"displayName" : "Efe",
"phoneNumbers" : [
{
"value" : "+23470390989"
}
]
},
{
"displayName" : "Efe6",
"phoneNumbers" : [
{
"value" : "+2347002478"
}
]
},
{
"displayName" : "No Reg",
"phoneNumbers" : [
{
"value" : "+2347034567890"
}
]
},
{
"displayName" : "Efe2",
"phoneNumbers" : [
{
"value" : "09058528818"
}
]
},
{
"displayName" : "Whales",
"phoneNumbers" : [
{
"value" : "+23490574583"
},
{
"value" : "+23481847979"
}
]
}
]
}
我尝试格式化的字符串来自 Getcontact 类(它从手机获取联系人列表),希望很多人都熟悉从移动设备获取联系人的方法。
已尝试
到目前为止我尝试过的是:
ArrayList<PhoneNuberStructure> phoneNuberStructures = new ArrayList<>();
phoneNuberStructures.add(/*arrays of phonenumbers will come here*/);
并且
ContactsStructure contactsStructure= new ContactsStructure();
contactsStructure.setDisplayName(name);
contactsStructure.setPhoneNumbers(new PhoneNuberStructure);
所以这个
ArrayList<ContactsStructure> contacts = new ArrayList<ContactsStructure>();
contacts.add(contactsStructure);
但我并没有真正理解它!这很令人困惑......
任何帮助都会很好。 谢谢大家。
最佳答案
类似这样的事情
public class Contact {
private String displayName = null;
private List<PhoneNumber> phoneNumbers = null;
public Contact() {}
public Contact(String displayName, List<PhoneNumber> phoneNumbers) { this.displayName = displayName; this.phoneNumbers = phoneNumbers; }
public String getDisplayName() { return displayName; }
public void setDisplayName(String displayName) { this.displayName = displayName; }
public List<PhoneNumber> getPhoneNumbers() { return phoneNumbers; }
public void setPhoneNumbers(List<PhoneNumber> phoneNumbers) { this.phoneNUmbers = phoneNumbers; }
}
public class PhoneNumber {
private String value = null;
public PhoneNumber() {}
public PhoneNumber(String value) { this.value = value; }
public String getValue() { return value; }
public void setValue(String value) { this.value = value }
}
public Class ContactsTest {
public static void main(String[] args) {
List<Contact> contacts = new ArrayList<>();
Contact contact = new Contact("Michael", null);
contacts.add(contact);
List<PhoneNumber> phoneNumbers = new ArrayList<>();
phoneNumbers.add(new PhoneNumber("+23470390989"));
contacts.add(new Contact("Efe", phoneNumbers);
Gson gson = new GsonBuilder().create();
System.out.println(gson.toJson(contacts));
}
}
关于java - 创建复杂的 Json 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51159933/