我想在String
中存储JsonArray
。
例如:
"virtual_hosts": [ "some_host"]
在java的帮助下,我该怎么做呢。
JsonArray arr = new JsonArray();
arr.add()
这只允许我添加JsonObject
,但我希望存储String
。
答案 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>