Java 如何使用任何json库/jar构造json对象

Java 如何使用任何json库/jar构造json对象,java,json,Java,Json,我只想构造JSON对象,如下所示: "Root":{ "c1": "v1" } 我尝试了以下代码: import org.codehaus.jettison.json.JSONException; import org.codehaus.jettison.json.JSONObject; public class Exe { public static void main(String[] args) throws JSONException { JSONOb

我只想构造JSON对象,如下所示:

"Root":{
  "c1": "v1"
}
我尝试了以下代码:

import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;


public class Exe {

    public static void main(String[] args) throws JSONException {
        JSONObject object = new JSONObject("ROOT");
        object.put("c1", "v1");
        System.out.println(object.toString());
    }
}
使用此代码,我得到以下异常:

Exception in thread "main" org.codehaus.jettison.json.JSONException: A JSONObject text must begin with '{' at character 1 of ROOT

我使用了codehaus API,但我没有找到解决方案,因此请您在这方面帮助我。

您需要创建JSONObject,然后将
“Root”:value
键值对添加到对象中。接受具有
“Root”
的字符串的构造函数需要一个完整的JSON对象作为字符串

JSONObject requestedObject = new JSONObject();
JSONObject innerValue = new JSONObject();
innerValue.put("c1", "v1");
requestedObject.put("Root", innerValue);
System.out.println(requestedObject);
JSONObject strConstr = new JSONObject("{\"Root\":{\"c1\":\"v1\"}}");
System.out.println(strConstr);
已确认生产:

{"Root":{"c1":"v1"}}
{"Root":{"c1":"v1"}}
作为一个重要的补充说明,您请求的JSON对象不是有效的JSON对象。如果您感兴趣,可以使用。下面显示了一个有效的对象

{
    "Root":{
        "c1": "v1"
    }
}
下面是一个用字符串确认关于构造函数的语句的快速片段

JSONObject requestedObject = new JSONObject();
JSONObject innerValue = new JSONObject();
innerValue.put("c1", "v1");
requestedObject.put("Root", innerValue);
System.out.println(requestedObject);
JSONObject strConstr = new JSONObject("{\"Root\":{\"c1\":\"v1\"}}");
System.out.println(strConstr);
已确认生产:

{"Root":{"c1":"v1"}}
{"Root":{"c1":"v1"}}

你可以使用图书馆。它简单实用。您可以在javascript中使用相同的语法创建json对象。示例:字符串jsonStr=“{myKey1:'myValue1'}”;JSONObject对象=新的JSONObject(jsonStr);谢谢@Matt,我试试这个没问题@Creator!我很高兴能帮上忙。