2017-02-23 60 views
-1

我想在JsonArray中存儲字符串。 例如: 「virtual_hosts」: 「vlbr-vlbre9ef7a820b3f43c7bd3418bb62.uscom-central-1.c9dev1.oc9qadev.com」]把字符串值放在JsonArray中

我應該怎麼做,用java的幫助。

JsonArray arr = new JsonArray(); 
arr.add() 

涉及添加JsonElement而不是字符串。我想存儲字符串。

+1

你可能會檢查http://stackoverflow.com/questions/15729598/how-to-add-a-string-array-in-a-json-object和http://stackoverflow.com/questions/11053332/ how-to-add-string-into-jsonarray –

+1

*「我應該怎麼做」*使用JSON庫。搜索網頁。有多個Java庫可用。如果你問如何使用特定的庫,你需要說出你正在嘗試使用哪一個庫。 – Andreas

+0

您可以創建主機列表並以JSON設置屬性,請檢查下面的答案。 –

回答

0

如果你想通過谷歌使用GSON,看起來你必須做這種方式:

JsonPrimitive firstHost = new JsonPrimitive("vlbr-vlbre9ef7a820b3f43c7bd3418bb62.uscom-central-1.c9dev1.oc9qadev.com"); 

JsonArray jArray = new JsonArray(); 
jArray.add(firstHost); 

JsonObject jObj = new JsonObject(); 
jObj.add("virtual_hosts", jArray); 

第一行將您的java字符串轉換爲json字符串。

在接下來的兩個步驟中,將創建一個json數組並將其添加到該數組中。

之後,將創建一個將要保存該數組的json對象,並向該數組添加一個使數組可訪問的鍵。

如果您檢查對象,它看起來就像你想擁有它。

如果你想使用gson,沒有簡單的方法在JsonArray上添加一個字符串。如果您需要直接添加字符串,則可能需要使用其他庫。

+0

是的,我從谷歌使用JsonArray。但是沒有稱爲JsonPrimitive的類。什麼是將Java字符串轉換爲Json字符串的其他方法 –

+0

@YashaJadwani實際上有一個,我測試了我的PC上的代碼。在這裏你可以看到[JsonPrimitive]的gson api(https://static.javadoc.io/com.google.code.gson/gson/2.6.2/com/google/gson/JsonPrimitive.html)。也許你正在使用舊版本的Java和/或gson? –

+0

非常感謝這個幫助!它按預期工作。 –

0

您可以創建主機列表並以JSON設置屬性。

import org.json.simple.JSONObject;  
import java.util.ArrayList; 

public class Test { 

    public static void main(String[] args) { 
     ArrayList<String> hosts = new ArrayList<String>(); 
     hosts.add("vlbr-vlbre9ef7a820b3f43c7bd3418bb62.uscom-central-1.c9dev1.oc9qadev.com"); 
     hosts.add("dummy.oc9qadev.com"); 

     JSONObject jsonObj = new JSONObject(); 
     jsonObj.put("virtual_hosts", hosts); 

     System.out.println("Final JSON String is--"+jsonObj.toString()); 


    } 
} 

輸出 -

{ 「virtual_hosts」: [ 「vlbr-vlbre9ef7a820b3f43c7bd3418bb62.uscom-central-1.c9dev1.oc9qadev.com」, 「dummy.oc9qadev.com」]}

0

你要做的是將JSONArray存儲到JSONObject中。因爲密鑰virtual_hosts將包含JSONArray的值。

下面的代碼可以幫助你。

public static void main(String[] args) { 

    JSONArray jsonArray = new JSONArray(); 

    jsonArray.add("vlbr-vlbre9ef7a820b3f43c7bd3418bb62.uscom-central-1.c9dev1.oc9qadev.com"); 

    JSONObject jsonObject = new JSONObject(); 

    jsonObject.put("virtual_hosts", jsonArray); 


    System.out.println(jsonObject); 

} 

輸出:

{"virtual_hosts":["vlbr-vlbre9ef7a820b3f43c7bd3418bb62.uscom-central-1.c9dev1.oc9qadev.com"]} 

Maven的dependecny

<dependency> 
    <groupId>net.sf.json-lib</groupId> 
    <artifactId>json-lib</artifactId> 
    <version>2.4</version> 
    <classifier>jdk15</classifier> 
</dependency>