2017-02-23 6 views
-1

Ich möchte String in JsonArray speichern. Ex: "virtual_hosts": [ "vlbr-vlbre9ef7a820b3f43c7bd3418bb62.uscom-central-1.c9dev1.oc9qadev.com"]Setzen Sie String-Wert in JsonArray

Wie soll ich dies tun, mit Hilfe von Java.

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

beinhaltet das Hinzufügen von JsonElement und nicht Zeichenfolge. Ich möchte String speichern.

+1

können Sie überprüfen, http://StackOverflow.com/Questions/15729598/How-to-Add-Astring-Array-in-AJsonObject und http://StackOverflow.com/Questions/11053332/ how-to-add-string-in-jsonarray –

+1

* "Wie soll ich das machen" * Verwenden Sie eine JSON-Bibliothek. Durchsuche das Web. Für Java stehen mehrere Bibliotheken zur Verfügung. Wenn Sie fragen, wie Sie eine bestimmte Bibliothek verwenden, müssen Sie angeben, welche Sie verwenden möchten. – Andreas

+0

Sie können eine Liste von Hosts erstellen und die Eigenschaft in JSON festlegen, überprüfen Sie die Antwort unten. –

Antwort

0

Wenn Sie von Google verwenden Gson werden, wie sieht Sie haben es tun auf diese Weise:

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

Die erste Zeile konvertiert Ihre Java-Zeichenfolge in eine JSON-Zeichenfolge.

In den nächsten zwei Schritten wird ein JSON-Array erstellt und Ihre Zeichenfolge wird hinzugefügt.

Danach wird ein Json-Objekt erstellt, das das Array enthält, und das Array wird mit einem Schlüssel hinzugefügt, der das Array zugänglich macht.

Wenn Sie das Objekt untersuchen, sieht es genau so aus, wie Sie es haben möchten.

Es gibt keine einfache Möglichkeit, nur einen String zu einer JsonArray hinzuzufügen, wenn Sie gson verwenden möchten. Wenn Sie Ihre Zeichenfolge direkt hinzufügen müssen, müssen Sie wahrscheinlich eine andere Bibliothek verwenden.

+0

Ja, ich benutze JsonArray von Google. Aber es gibt keine Klasse namens JsonPrimitive. Was ist die andere Methode, um Java-String in Json String zu konvertieren –

+0

@ YashaJadwani tatsächlich gibt es einen, ich habe den Code auf meinem PC getestet. Hier sehen Sie die gson API von [JsonPrimitive] (https://static.javadoc.io/com.google.code.gson/gson/2.6.2/com/google/gson/JsonPrimitive.html). Vielleicht verwenden Sie eine ältere Version von Java und/oder Gson? –

+0

danke diese Hilfe viel !! es funktioniert wie erwartet. –

0

Sie können eine Liste von Hosts erstellen und die Eigenschaft in JSON festlegen.

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()); 


    } 
} 

Ausgang -

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

0

Sie versuchen, ein JSONArray in einem JSONObject zu speichern. Weil der Schlüssel virtual_hosts einen Wert als JSONArray enthält.

Unten Code kann Ihnen helfen.

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

} 

Ausgang:

{"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>