Java JSON数组到ArrayList<;列表<;字符串>&燃气轮机;
我有一个JSON数组,如下所示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对象数组。您可以这样尝试-
[["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;i1)尝试{
字符串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>>(){}));
}