簡體   English   中英

java gson json對象數組轉換為字符串數組

[英]java gson json object array to string array

我是JAVA的初學者,正在使用gson庫轉換類似以下內容的JSON字符串:

String json = "{\"Report Title\": \"Simple Embedded Report Example with Parameters\",\"Col Headers BG Color\": \"yellow\",\"Customer Names\":[\"American Souvenirs Inc\",\"Toys4GrownUps.com\",\"giftsbymail.co.uk\",\"BG&E Collectables\",\"Classic Gift Ideas, Inc\"]}";
Gson gson = new Gson();
jsonObject (Map) = gson.fromJson(json, Object.class);

但是問題是我需要將“客戶名稱”數組作為字符串數組而不是對象數組返回。

gson可以這樣做嗎,還是必須通過某種方式檢測類型(數組)然后將其循環遍歷每個元素以將其轉換為字符串數組並替換對象數組,然后再進行轉換?

附加的問題是JSON字段名稱不是固定的,並且JSON字符串中可能包含多個數組,所有這些數組都需要轉換。

您可以使用jsonarray獲取特定字段

你可以找到json api JSON

將json文本添加到文件中,或者您可以使用緩沖區傳遞給參數

String json = "{\"customer_names\" : [...]}";   

然后

JSONParser parser = new JSONParser();
Object obj = parser.parse(new FileReader("test.json"));

    JSONObject jsonObject = (JSONObject) obj;
         JSONArray msg = (JSONArray) jsonObject.get("Customer Names");
            Iterator<String> iterator = msg.iterator();
            while (iterator.hasNext()) {
                    System.out.println(iterator.next());
            }

或者您可以使用GSON這樣的東西

public class JsonPojo {
private String[] customer_names;
public String[] getCustomerNames(){ return this.customer_names;}
}


public class App{

 public static main(String[] args) {

 Gson gson = new Gson();
    JsonPojo thing = gson.fromJson(json, JsonPojo.class);
    if (thing.getCustomerNames()!= null)
    {
      // do what you want
    }

 }

}

暫無
暫無

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

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