簡體   English   中英

使用gson將json字符串轉換為POJO

[英]convert json string to POJO using gson

我正在使用gson將json轉換為model,反之亦然。

json字符串如下:

 {
"p": {
    "1": {
        "address": "asd",
        "name": "1",
        "dob": 1
    },
    "2": {
        "address": "asd",
        "name": "2",
        "dob": 1
    },
    "3": {
        "address": "asd",
        "name": "3",
        "dob": 1
    }
},
"as": "value"}

我的pojo課程如下:

package com.example.androtest;

public class Pojo {

String name, address;
int dob;

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getAddress() {
    return address;
}

public void setAddress(String address) {
    this.address = address;
}

public int getDob() {
    return dob;
}

public void setDob(int dob) {
    this.dob = dob;
}

}

接下來是模型類,為了隱瞞模型,我創建了模型類ArrayList p getter setter

package com.example.androtest;
import java.util.ArrayList;

public class Listpojo {

    ArrayList<Pojo> p ;

    public ArrayList<Pojo> getP() {
        return p;
    }

    public void setP(ArrayList<Pojo> p) {
        this.p = p;
    }


}

用這個來轉換:

String re = "{\"p\": {\"1\": {\"address\": \"asd\",\"name\": \"1\",\"dob\": 1},\"2\": {\"address\": \"asd\",\"name\": \"2\"dob\": 1},\"3\": {\"address\": \"asd\",\"name\": \"3\", \"dob\": 1}}}";

Listpojo ps = CoreGsonUtils.fromJson(re, Listpojo.class);

但它不能正常工作,任何人都可以讓我知道如何進行轉換嗎?

如果您想要這樣的東西(省略as ):

class ListPojo{
  ArrayList<Pojo> p;
  String as;
}

那么json應該是:

{
"p": [
  {
    "address": "asd",
    "name": "1",
    "dob": 1
  },
  {
    "address": "asd",
    "name": "2",
    "dob": 1
  },
  {
    "address": "asd",
    "name": "3",
    "dob": 1
  }
],
"as": "value"
}

上面的解決方案假設p是ArrayList。 但是,如果它是一個Map,那么原始的json就可以了,您只需將p替換為

class ListPojo{
   Map<Integer, Pojo> p;
   String as;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM