【问题标题】:convert json string to POJO using gson使用 gson 将 json 字符串转换为 POJO
【发布时间】:2015-05-13 02:33:40
【问题描述】:

我正在使用 gson 将 json 转换为模型,反之亦然。

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);

但它不 woking,谁能告诉我如何转换它?

【问题讨论】:

  • 我可以知道为什么它被否决了吗?
  • 你的 pojo 类是对的吗?pojo.sodhanalibrary.com 使用这个链接你可以创建一个 pojo 类的响应。请检查一下,然后就会了解 pojo
  • @user4759076 你能告诉我你正在使用哪个 IDE。 ??安卓工作室?
  • @user4759076 投反对票的人是那些不想提供帮助的人。为你点赞。已经有解决方案了吗?

标签: java android json gson


【解决方案1】:

如果你想要这样的东西(你忽略了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;
}

【讨论】:

  • 上面 json 中的 ya 很好,但我可以如何在动态键中做
  • 好的,我知道了。通过动态键你想要一张地图。其他人已向您解释,但我会更新我的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-27
  • 2015-09-16
  • 1970-01-01
  • 1970-01-01
  • 2021-10-04
  • 2013-05-19
  • 1970-01-01
相关资源
最近更新 更多