Java 从字符串创建JSONObject

Java 从字符串创建JSONObject,java,arrays,json,Java,Arrays,Json,我知道这个问题已经被问到了,我尝试了所有的解决方案,但都不适合我。 我有一个json语法字符串: { tasks: [ { blockId: "startpoint1", properties: [ "aaaa" ] }, { blockId: "endpoint2", properties: [ "tttttt" ] } ] } 我试图通过以下方式从该字符串

我知道这个问题已经被问到了,我尝试了所有的解决方案,但都不适合我。 我有一个json语法字符串:

{
   tasks: [
      {
         blockId: "startpoint1",
         properties: [ "aaaa"  ]
      },
      {
         blockId: "endpoint2",
         properties: [ "tttttt" ]
      } 
   ]
}
我试图通过以下方式从该字符串创建一个
JSONObject

JSONParser parser=new JSONParser();
try {
    JSONObject json=(JSONObject) parser.parse(req.getParameter(WORKFLOW_DEFINITION_PROPERTIES));
    } catch (ParseException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
现在我想在
tasks
数组上循环,以获取每个元素
blockId
。我试图通过如下方式将
JSONObject
转换为
JSONArray
来实现这一点:

JSONArray tasks=(JSONArray) json.get("tasks");
但我仍然能够循环执行
任务
,以获得
块ID的

你能告诉我我做错了什么,或者如何解决这个问题吗

您必须使用
getJsonArray
方法而不是
get
方法来检索任务数组:

JSONArray tasks= json.getJsonArray("tasks");

您必须使用
getJsonArray
方法而不是
get
方法来检索任务数组:

JSONArray tasks= json.getJsonArray("tasks");

只需更改创建JSONObject的方式

JSONObject jObject = new JSONObject(jsonStr);
//later you can access to your array 
JSONArray tasks=(JSONArray) jObject.get("tasks");

只需更改创建JSONObject的方式

JSONObject jObject = new JSONObject(jsonStr);
//later you can access to your array 
JSONArray tasks=(JSONArray) jObject.get("tasks");
你需要这个吗

    var arrayVariable=[
      {
         blockId: "startpoint1",
         properties: [ "aaaa"  ]
      },
      {
         blockId: "endpoint2",
         properties: [ "tttttt" ]
      } 
   ]

    arrayVariable.map(function(d){
       return d.blockId
       });
出去,你会得到你所有的blockId

     ["startpoint1", "endpoint2"]
你需要这个吗

    var arrayVariable=[
      {
         blockId: "startpoint1",
         properties: [ "aaaa"  ]
      },
      {
         blockId: "endpoint2",
         properties: [ "tttttt" ]
      } 
   ]

    arrayVariable.map(function(d){
       return d.blockId
       });
出去,你会得到你所有的blockId

     ["startpoint1", "endpoint2"]

var obj=JSON.parse(字符串)我在Java中没有javaScript
var obj=JSON.parse(字符串)我在Java中没有Javascript此方法不包括在
org.json.simple.JSONArray
class I使用此方法不包括在
org.json.simple.JSONArray
class I使用
JSONObject
的构造函数是
JSONObject(map)
,因此,我不能用
字符串直接创建
JSONObject
,这不是真的,在org.json json 20160810版本中,您可以从字符串创建对象。
JSONObject
的构造函数是
JSONObject(map)
,所以我不能用
字符串直接创建
JSONObject
,这不是真的,在org.json json 20160810版本中,你可以从字符串创建对象。不,我的json字符串是从UI图动态创建的,所以我不能像你那样静态创建它,使用JSON.parse(JSONstring)将JSON字符串转换为JSON对象,然后使用我上面的方法它会工作不,我的JSON字符串是从UI图动态创建的,所以我不能像您那样静态创建它。使用JSON.parse(JSONstring)将JSON字符串转换为JSON对象,然后使用我上面的方法它会工作