我知道这个问题已经被问到了,我尝试了所有的解决方案,但对我来说没有任何作用。 所以我有这个json语法字符串:
{
tasks: [
{
blockId: "startpoint1",
properties: [ "aaaa" ]
},
{
blockId: "endpoint2",
properties: [ "tttttt" ]
}
]
}
我试图通过这种方式从这个String创建一个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");
但我仍然可以循环tasks
以获取blockId's
。
你能告诉我我做错了什么或如何解决这个问题?
答案 0 :(得分:4)
您必须使用getJsonArray
方法而不是get
方法来检索任务数组:
JSONArray tasks= json.getJsonArray("tasks");
答案 1 :(得分:1)
只需更改创建JSONObject的方式。
JSONObject jObject = new JSONObject(jsonStr);
//later you can access to your array
JSONArray tasks=(JSONArray) jObject.get("tasks");
答案 2 :(得分:-1)
你需要这个吗?
var arrayVariable=[
{
blockId: "startpoint1",
properties: [ "aaaa" ]
},
{
blockId: "endpoint2",
properties: [ "tttttt" ]
}
]
arrayVariable.map(function(d){
return d.blockId
});
Out put你将得到你所有的阻止
["startpoint1", "endpoint2"]