Java JSON数组到ArrayList<;列表<;字符串>&燃气轮机;

Java JSON数组到ArrayList<;列表<;字符串>&燃气轮机;,java,arrays,json,arraylist,Java,Arrays,Json,Arraylist,我有一个JSON数组,如下所示 [["ONE","CAT",0],["TWO","DOG",0]] 我想把它做成一个ArrayList,我试图循环它,但无法让它工作 我试过了 for (ArrayList arrayList: jsonArray) { for (Object array : arrayList) { } } 但后来我发现了一个编译错误。我无法循环浏览JSON对象数组。您可以这样尝试-

我有一个JSON数组,如下所示

[["ONE","CAT",0],["TWO","DOG",0]]
我想把它做成一个
ArrayList
,我试图循环它,但无法让它工作

我试过了

for (ArrayList arrayList: jsonArray) {
                for (Object array : arrayList) {

                }
            }

但后来我发现了一个编译错误。我无法循环浏览JSON对象数组。

您可以这样尝试-

try {
        ArrayList<Object> _arrList = new ArrayList<Object>();
        JSONArray _jArryMain = new JSONArray("YOUR_JSON_STRING");
        if (_jArryMain.length()>0) {
            for (int i = 0; i < _jArryMain.length(); i++) {
                JSONArray _jArraySub  = _jArryMain.getJSONArray(i);
                _arrList.add(_jArraySub);

            }
        }
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
试试看{
ArrayList _arrList=新的ArrayList();
JSONArray _jArryMain=新的JSONArray(“您的JSON字符串”);
if(_jArryMain.length()>0){
对于(int i=0;i<_jArryMain.length();i++){
JSONArray _jArraySub=\u jArryMain.getJSONArray(i);
_arrList.add(_jArraySub);
}
}
}捕获(JSONException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}

您可以这样尝试-

try {
        ArrayList<Object> _arrList = new ArrayList<Object>();
        JSONArray _jArryMain = new JSONArray("YOUR_JSON_STRING");
        if (_jArryMain.length()>0) {
            for (int i = 0; i < _jArryMain.length(); i++) {
                JSONArray _jArraySub  = _jArryMain.getJSONArray(i);
                _arrList.add(_jArraySub);

            }
        }
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
试试看{
ArrayList _arrList=新的ArrayList();
JSONArray _jArryMain=新的JSONArray(“您的JSON字符串”);
if(_jArryMain.length()>0){
对于(int i=0;i<_jArryMain.length();i++){
JSONArray _jArraySub=\u jArryMain.getJSONArray(i);
_arrList.add(_jArraySub);
}
}
}捕获(JSONException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}

首先,Java不喜欢混合类型。如果您确定可以使用
列表
,请继续阅读

我建议使用Jackson库和
ObjectMapper\readTree

ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree("JSON CONTENT");
List<List<String>> convertedList = new ArrayList<List<String>>();
for (JsonNode arrNode : node) {
    List<String> currList = new ArrayList<String>();
    convertedList.add(currList);
    for (JsonNode dataNode : arrNode) {
        currList.add(dataNode.asText());
    }
}
System.out.println(convertedList);
ObjectMapper mapper=new ObjectMapper();
JsonNode=mapper.readTree(“JSON内容”);
List convertedList=new ArrayList();
for(JsonNode arrNode:node){
List currList=new ArrayList();
convertedList.add(currList);
for(JsonNode数据节点:arrNode){
currList.add(dataNode.astex());
}
}
系统输出打印项次(转换列表);

首先,Java不喜欢混合类型。如果您确定可以使用
列表
,请继续阅读

我建议使用Jackson库和
ObjectMapper\readTree

ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree("JSON CONTENT");
List<List<String>> convertedList = new ArrayList<List<String>>();
for (JsonNode arrNode : node) {
    List<String> currList = new ArrayList<String>();
    convertedList.add(currList);
    for (JsonNode dataNode : arrNode) {
        currList.add(dataNode.asText());
    }
}
System.out.println(convertedList);
ObjectMapper mapper=new ObjectMapper();
JsonNode=mapper.readTree(“JSON内容”);
List convertedList=new ArrayList();
for(JsonNode arrNode:node){
List currList=new ArrayList();
convertedList.add(currList);
for(JsonNode数据节点:arrNode){
currList.add(dataNode.astex());
}
}
系统输出打印项次(转换列表);

我想这就是你想要的:

try {
        ArrayList<ArrayList<Object>> mainarraylist = new ArrayList<ArrayList<Object>>();
        JSONArray jsonarray = new JSONArray(yourstringjson);
        if (jsonarray.length()>0) {
            for (int i = 0; i < jsonarray.length(); i++) {
               ArrayList<String> subarray;
               JSONArray jsonsubarray  = jsonarray.getJSONArray(i);
               for (int i = 0; i < jsonsubarray.length(); i++) {
                 subarray = new ArrayList<String>;

                 jsonsubarray.add(jsonsubarray.get(i));
             }
           mainarraylist.add(jsonsubarray);
            }
        }
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
试试看{
ArrayList mainarraylist=新建ArrayList();
JSONArray JSONArray=新的JSONArray(yourstringjson);
if(jsonarray.length()>0){
for(int i=0;i
这将给出结果:
mainarraylist.get(0)。get(0)等于1


仅供参考:代码未编译,因此可能存在一些错误。这是您的解决方案的摘要。

我想这就是您想要的:

try {
        ArrayList<ArrayList<Object>> mainarraylist = new ArrayList<ArrayList<Object>>();
        JSONArray jsonarray = new JSONArray(yourstringjson);
        if (jsonarray.length()>0) {
            for (int i = 0; i < jsonarray.length(); i++) {
               ArrayList<String> subarray;
               JSONArray jsonsubarray  = jsonarray.getJSONArray(i);
               for (int i = 0; i < jsonsubarray.length(); i++) {
                 subarray = new ArrayList<String>;

                 jsonsubarray.add(jsonsubarray.get(i));
             }
           mainarraylist.add(jsonsubarray);
            }
        }
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
试试看{
ArrayList mainarraylist=新建ArrayList();
JSONArray JSONArray=新的JSONArray(yourstringjson);
if(jsonarray.length()>0){
for(int i=0;i
这将给出结果:
mainarraylist.get(0)。get(0)等于1


仅供参考:代码未编译,因此可能存在一些错误。这是您的解决方案的摘要。

您可以使用此代码解决您的问题

String jsonValue = "[[\"ONE\",\"CAT\",0],[\"TWO\",\"DOG\",0]]";
  try{
  JSONArray array = (JSONArray) new JSONTokener(jsonValue).nextValue();
  ArrayList<JSONArray> arrayList = new ArrayList<>();
  arrayList.add(array);
  for (int i=0;i<arrayList.get(arrayList.size()-1).length();i++) {
        try {
            JSONArray arr = arrayList.get(arrayList.size()-1).getJSONArray(i);
            for (int j = 0; j < arr.length(); j++) {
                System.out.println("Value = " + arr.get(j));
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
  }catch (JSONException e){

  }
String jsonValue=“[\'ONE\'、\'CAT\'、0]、\'TWO\'、\'DOG\'、0]]”;
试一试{
JSONArray数组=(JSONArray)新的JSONTokener(jsonValue).nextValue();
ArrayList ArrayList=新的ArrayList();
添加(数组);

对于(int i=0;i您可以使用此代码来解决您的问题

String jsonValue = "[[\"ONE\",\"CAT\",0],[\"TWO\",\"DOG\",0]]";
  try{
  JSONArray array = (JSONArray) new JSONTokener(jsonValue).nextValue();
  ArrayList<JSONArray> arrayList = new ArrayList<>();
  arrayList.add(array);
  for (int i=0;i<arrayList.get(arrayList.size()-1).length();i++) {
        try {
            JSONArray arr = arrayList.get(arrayList.size()-1).getJSONArray(i);
            for (int j = 0; j < arr.length(); j++) {
                System.out.println("Value = " + arr.get(j));
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
  }catch (JSONException e){

  }
String jsonValue=“[\'ONE\'、\'CAT\'、0]、\'TWO\'、\'DOG\'、0]]”;
试一试{
JSONArray数组=(JSONArray)新的JSONTokener(jsonValue).nextValue();
ArrayList ArrayList=新的ArrayList();
添加(数组);
对于(int i=0;i
1)尝试{
字符串abc=“[\'ONE\',\'CAT\',0],\'TWO\',\'DOG\',0]]”;
JSONArray JSONArray=新JSONArray(abc);
if(jsonarray.length()>0){
for(int i=0;i”,“”+jsonsubarray.get(j));
}
}
}
}捕获(JSONException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
1.试试看{
字符串abc=“[\'ONE\',\'CAT\',0],\'TWO\',\'DOG\',0]]”;
JSONArray JSONArray=新JSONArray(abc);
if(jsonarray.length()>0){
for(int i=0;iObjectMapper mapper = new ObjectMapper();
String json = "[[\"ONE\",\"CAT\",0],[\"TWO\",\"DOG\",0]]";
List<List<String>> output = new ArrayList<List<String>>();

JsonNode root = mapper.readTree(json);
for (JsonNode child : root) {
    output.add(mapper.readValue(child.traverse(), new TypeReference<ArrayList<String>>(){}));
}