gpt4 book ai didi

java - Gson : Iterating over fromJson result

转载 作者:行者123 更新时间:2023-11-29 06:12:36 38 4
gpt4 key购买 nike

语言:Java 和 Gson

解析完 JSON 数组后,我该如何:

1) 打印其所有内容

2) 迭代其内容?

例如,这是我的代码:

String JSInput = "//Json String";
Type listType = new TypeToken<TabClass[]>() {}.getType();
Input_String =GsonObject.fromJson(JSInput, listType);
System.out.println(Input_String.toString());

对应的类描述为:

class TabClass{
String Name;
String Parent;
public String getName() {
return Name;
}
public String getParent() {
return Parent;
}
public void setName(String Name) {
this.Name = Name;
}
public void setParent(String Parent) {
this.Parent = Parent;
}

以上代码仅返回对象的描述及其内存位置:

[Lcom.example.projectname.TabClass;@1fbfd6

如何打印结果对象的内容,或对其进行迭代?

最佳答案

没有必要仅为数组创建 TypeToken。 Gson 将很好地反序列化为数组类型。

如果你有一个数组,那么你不必为了打印而显式地遍历它的内容。您可以使用其中一种 Arrays.toString() 方法。

这是一个例子。

// output:
// [{value1=one, value2=1}, {value1=two, value2=2}, {value1=three, value2=3}]

import java.util.Arrays;

import com.google.gson.Gson;

public class Foo
{
public static void main(String[] args)
{
Gson GsonObject = new Gson();

String JSInput = "[{\"value1\":\"one\",\"value2\":1},{\"value1\":\"two\",\"value2\":2},{\"value1\":\"three\",\"value2\":3}]";
TabClass[] Input_String = GsonObject.fromJson(JSInput, TabClass[].class);
System.out.println(Arrays.toString(Input_String));
}
}

class TabClass
{
private String value1;
private int value2;

@Override
public String toString()
{
return String.format(
"{value1=%s, value2=%d}",
value1, value2);
}
}

否则,如果您更愿意显式地遍历数组的组成部分,使用 Java 时您有几种选择。一个简单的方法是使用 for-each 循环结构。

for (TabClass tab : Input_String)
{
System.out.println(tab);
}

(顺便说一下,“Input_String”不是这个 TabClass 数组的好名称。更具描述性的名称可能是“tabs”。)

关于java - Gson : Iterating over fromJson result,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6265496/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com