java - 创建复杂的 Json 结构

标签 java android arrays json android-studio

我的挑战是,我发现将字符串格式化为 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/

相关文章:

java - 通过 JNI 读取文件时崩溃,但仅运行代码的 C 元素时成功

java - 为什么在AQS(AbstractQueuedSynchronizer)的await方法中使用 "while"

android - 如何在 Jetpack Compose 中传递条件参数?

Java - 可以在数组中添加一个 int 和一个 String 吗?

java - 循环中的 if 语句中的 i-- 做什么?

Java:线程不会等待

java - 在小程序中挂起线程

java - 为什么我不能在方法之外调用变量?

iphone - 在 Titanium 中,如何从代码执行按钮单击事件?

c - c 中具有常量参数的结构体数组