当前位置: 首页 > 知识库问答 >
问题:

java json字符串到对象的arraylist

储俊英
2023-03-14

我有Json String看起来像这样

String RET=[{"id":"1","name":"koukouvagia","category":"c","lat":"35.52563370000000","lon":"24.05584680000000","address":"Alexi Minoti","phone":"2821027449","counter":"0"},{"id":"2","name":"theatro","category":"c","lat":"35.51392000000000","lon":"24.01979000000000","address":"Plateia Agoras 69","phone":"2821008500","counter":"0"},{"id":"3","name":"mikro kafe","category":"c","lat":"35.51700560000000","lon":"24.02495420000000","address":"Akth Miaouli 6","phone":"2821059321","counter":"0"},{"id":"4","name":"mikro efeteio","category":"c","lat":"35.51033020000000","lon":"24.03102900000000","address":"Plateia Dikastirion","phone":"2821028112","counter":"0"},{"id":"5","name":"Grhgorhs","category":"c","lat":"35.51355300000000","lon":"24.02024900000000","address":"N.Plasthra \u0026 S.Venizelou","phone":"0","counter":"0"}]

并希望将此Json字符串转换为对象的数组列表,并将所有元素放在类(数据Object.class)上并打印元素。

    Type listOfTestObject=new TypeToken<List<DataObject>>(){}.getType();
    List<DataObject> list2 = g.fromJson(RET, listOfTestObject);

     for(int i = 0; i < list2.size(); i++) {
            System.out.println(list2.get(i).getNameF());
        }

输出为:

null
null
null
null
null

我创建的类具有这种形式

public class DataObject {
  String idF;
  String nameF;
  String categoryF;
  String latF;
  String lonF;
  String addressF;
  String phoneF;
  String counterF;


public String getIdF() {
    return idF;
}
public void setIdF(String idF) {
    this.idF = idF;
}
public String getNameF() {
    return nameF;
}
public void setNameF(String nameF) {
    this.nameF = nameF;}

.
.
.

}

我做错了什么?

共有2个答案

顾乐池
2023-03-14

列表

List<DataObject> list2 = new ArrayList<DataObject>((DataObject[])g.fromJson(RET, DataObject[]));

for(int i = 0; i < list2.size(); i++) {
        System.out.println(list2.get(i).getNameF());
}

您还应该为解析器解释,哪个字段连接到哪个JSON参数。如果使用GSON解析器,则可以编写注释。或者对于jackson,你应该重新命名你的getter和setter,正如评论中告诉你的那样。

注释应该放在下一步:

class DataObject {
  @SerializedName("id")
  String idF;
}

并在括号中用JSON字符串写入字段名

锺功
2023-03-14

修复它所要做的就是向每个字段添加注释:

@SerializedName("id")
String idF;
@SerializedName("name")
String nameF;
 类似资料:
  • 问题内容: 我有一个JSON响应,我需要将对应的JSON字符串映射到特定的Response类,是否有任何工具或框架可以做到这一点。 响应类为: Json响应字符串为{“ 0”:{“ 0”:“ Rockey”,“ 1”:“ John”}} 我将Apache CXF Framework与Jettison一起使用,因为JSON Provider还使用JAXB将数据连接到低带宽客户端。 请注意,我要将数字

  • 问题内容: 这是以前有关Java中的String初始化的一些问题的后续问题。 在用Java进行了一些小测试之后,我面临以下问题: 为什么我可以执行此语句 当str2一个String对象初始化为,但我不能调用方法toString()上str2?那么Java如何将空字符串对象和字符串文字串联起来? 顺便说一句,我还尝试将一个初始化为null和字符串文字的Integer连接起来,”a_literal_s

  • 我正在开发一个Android应用程序。在我的应用程序中,我必须将字符串转换为JSON对象,然后解析值。我检查了Stackoverflow中的解决方案,并在这里的链接中发现了类似的问题 解决办法是这样的

  • 我有这样一个XML字符串: 当我试图将字符串读入这样的对象时 我得到以下错误: 我在类中使用@JsonProperty是因为@XmlElement还有其他问题。如果我在ResultModel类中排除字段QueryResults,那么字符串的解析工作正常,看起来是正确的。我做错了什么?我对Java中XML字符串的解析非常陌生,所以我希望有一些简单的方法来解决这个问题。。。

  • 问题内容: 我正在开发一个Android应用程序。在我的应用程序中,我必须将字符串转换为Json Object,然后解析值。我检查了stackoverflow中的解决方案,并在此处找到了类似的问题链接 解决方案是这样的 我在代码中使用相同的方式。我的绳子是 替换后,我得到了这样的结果 当我执行 我收到以下json异常 请帮助我解决我的问题。 问题答案: 删除斜杠: