簡體   English   中英

Gson:迭代 fromJson 結果

[英]Gson : Iterating over fromJson result

語言: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描述為:

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

}

上述代碼僅返回 object 及其 memory 位置的描述:

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

如何打印生成的 object 的內容,或對其進行迭代?

不必僅為數組創建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”。)

暫無
暫無

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

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