将String值放在gson.JsonArray中

时间:2017-02-23 09:00:15

标签: java json

我想在String中存储JsonArray。 例如:

"virtual_hosts": [ "some_host"]

在java的帮助下,我该怎么做呢。

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

这只允许我添加JsonObject,但我希望存储String

3 个答案:

答案 0 :(得分:2)

如果您打算通过谷歌使用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添加字符串即可。如果您需要直接添加字符串,则可能需要使用其他库。

答案 1 :(得分: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”]}

答案 2 :(得分: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>