当前位置:首页 » 编程语言 » java遍历json数组

java遍历json数组

发布时间: 2022-08-27 19:26:01

‘壹’ java中把json怎么转换成数组

使用原生的解析:

String json = "...";

//遍历数组里的值,得到每个独立的对象,然后获取对应的值设置到声明好的对象中,最终创建对象完成后添加到集合中,如我自己代码里的片段:

for (int j = 0; j < array.length(); j++) {

obj = array.getJSONObject(j);

Data data = new Data();

mDataList.add(data);

}

数组声明

在数组的声明格式里,“数据类型”是声明数组元素的数据类型,可以是java语言中任意的数据类型,包括简单类型和结构类型。“数组名”是用来统一这些相同数据类型的名称,其命名规则和变量的命名规则相同。

数组声明之后,接下来便是要分配数组所需要的内存,这时必须用运算符new,其中“个数”是告诉编译器,所声明的数组要存放多少个元素,所以new运算符是通知编译器根据括号里的个数,在内存中分配一块空间供该数组使用。利用new运算符为数组元素分配内存空间的方式称为动态分配方式。

以上内容参考:网络-数组

‘贰’ json数据请问怎么遍历

如果是js中遍历使用
var anObject = {one:1,two:2,three:3};//对json数组each
$.each(anObject,function(name,value) {

});

如果是Java代码直接用for循环就行了,说白了json也是数组的一种,json对象和json数组都可以

//遍历json数组
String json1 = "{data:[{name:'Wallace'},{name:'Grommit'}]}";
jsonObjSplit = new JSONObject(json1);
JSONArray ja = jsonObjSplit.getJSONArray("data");
for (int i = 0; i < ja.length(); i++) {JSONObject jo = (JSONObject) ja.get(i);System.out.println(jo.get("name"));}
//JSONObject遍历json对象
String json2 = "{name:'Wallace',age:15}";
jsonObj = new JSONObject(json2);
for (Iterator iter = jsonObj.keys(); iter.hasNext();) {String key = (String)iter.next();System.out.println(jsonObj .getString(Key));}

‘叁’ java 遍历json数组

你的这个问题确实需要点时间;

我个人的思路是用 HashMap 和 List 这两种数据结构;

如果你了解二叉数的话,在用我说的上面的两种数据结构;

是能解决问题的;

如果对回答满意,请点【采纳答案】,如果还有问题,请点【追问】

希望我的回答对您有所帮助,希望能采纳。

‘肆’ JAVA后台来了个数组,在前台变成json,如何遍历后输出到div

你可以这样写
var image ={ width:100, height:100, id:2 } for (var attr in image ) { var propertyValue = image [attr]; console.log(propertyValue );<br> }

‘伍’ java中怎么遍历jsonarray

String json =
"[" +
" {" +
" \"resultcode\": \"200\"" +
" }," +
" {" +
" \"resultcode\": \"201\"" +
" }" +
"]";
JsonParser jp = new JsonParser();
JsonElement je = jp.parse(json);
JsonArray ja=je.getAsJsonArray();
for (JsonElement jsonElement : ja) {
System.out.println(jsonElement.getAsJsonObject().get("resultcode").getAsString());
}

‘陆’ java解析json字符串 放到数组中

java解析json字符串时将大括号中的对应为一个类,里面的数据对应为类的属性,最后用数组接受即可。

示例关键代码如下:

//导入net.sf.json.JSONArray和net.sf.json.JSONObject两个jar包

Stringstr="[{name:'a',value:'aa'},{name:'b',value:'bb'},{name:'c',value:'cc'},{name:'d',value:'dd'}]";//一个未转化的字符串
JSONArrayjson=JSONArray.fromObject(str);//首先把字符串转成JSONArray对象
if(json.size()>0){
for(inti=0;i<json.size();i++){
JSONObjectjob=json.getJSONObject(i);//遍历jsonarray数组,把每一个对象转成json对象
System.out.println(job.get("name")+"=");//得到每个对象中的属性值
}
}

‘柒’ 求java合并json数据的代码

我想了一下,但是得有一个前提,就是第一个json数组的size必须和第二个json数组的size相同,并且一一对应,否则将造成数组溢出。

如果是基于上面这个前提,那么实现的方法就简单了。

操作json对象,其实标准的方法是将实体类转换成json后再操作,我这里的话为了便捷直接使用谷歌的Gson来创建JsonObject了,其他的json依赖还有阿里巴巴的FastJson等等,看你平时用什么习惯。

引入Gson依赖:

<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.0</version>
</dependency>

实现代码:

public class Main {
public static void main(String[] args) {
JsonArray jsonArray1 = new JsonArray();
JsonObject json11 = new JsonObject();
json11.addProperty("数据1", "0000");
json11.addProperty("数据2", "1111");
JsonObject json12 = new JsonObject();
json12.addProperty("数据1", "0000");
json12.addProperty("数据2", "1111");
JsonObject json13 = new JsonObject();
json13.addProperty("数据1", "0000");
json13.addProperty("数据2", "1111");
jsonArray1.add(json11);
jsonArray1.add(json12);
jsonArray1.add(json13);
System.out.println(jsonArray1);

JsonArray jsonArray2 = new JsonArray();
JsonObject json21 = new JsonObject();
json21.addProperty("数据3", "6666");
JsonObject json22 = new JsonObject();
json22.addProperty("数据3", "6666");
JsonObject json23 = new JsonObject();
json23.addProperty("数据3", "6666");
jsonArray2.add(json21);
jsonArray2.add(json22);
jsonArray2.add(json23);
System.out.println(jsonArray2);

//遍历json数组,按位取出对象
for (int i = 0; i < jsonArray1.size(); i++) {
JsonObject json1 = jsonArray1.get(i).getAsJsonObject();
JsonObject json3 = jsonArray2.get(i).getAsJsonObject();
//遍历数据3内容,通过Entry获取数据3的key和value,并合并到数据1中
for (Map.Entry<String, JsonElement> item : json3.entrySet()) {
json1.addProperty(item.getKey(), item.getValue().getAsString());
}
}
System.out.println(jsonArray1);
}
}

整体思路为:遍历两个json数组,按位进行合并操作。合并时,遍历数据3的jsonObject,获取其key和value,并将其合并到数据1中即可。

运行结果:

‘捌’ java foreach是否能对jsonarray进行遍历

java foreach能对jsonarray进行遍历。foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用。

拓展:

1、Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

2、Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。

‘玖’ 跪求大神,用js或者java循环遍历json数组,实现下面功能,太难了,实在不会,跪求了(6)。

varorigin=[
{"first_id":1,"first_name":"中学","second_id":"1-1","second_name":"一年级","third_id":"1-1-1","third_name":"一年级一班","people":10,"age":10,"parent":5},
{"first_id":1,"first_name":"中学","second_id":"1-1","second_name":"一年级","third_id":"1-1-2","third_name":"一年级二班","people":11,"age":10,"parent":5},
{"first_id":1,"first_name":"中学","second_id":"1-2","second_name":"二年级","third_id":"1-2-1","third_name":"二年级一班","people":20,"age":10,"parent":5},
{"first_id":1,"first_name":"中学","second_id":"1-2","second_name":"二年级","third_id":"1-2-2","third_name":"二年级二班","people":21,"age":10,"parent":5},
{"first_id":2,"first_name":"高中","second_id":"2-1","second_name":"一年级","third_id":"2-1-1","third_name":"一年级一班","people":31,"age":10,"parent":5}
];

varfinalData=[];//最终的数据

transferData();//数据转换
console.log(finalData,JSON.stringify(finalData));

functiontransferData(){
origin.forEach(function(n){
varfirst=getRecordById(n.first_id,finalData);
if(first){
first.age+=n.age;
first.parent+=n.parent;
first.people+=n.people;

varsecond=getRecordById(n.second_id,first.children);
if(second){
second.age+=n.age;
second.parent+=n.parent;
second.people+=n.people;

varthird=getRecordById(n.third_id,second.children);
if(third){
//这里应该不会存在
}else{
second.children.push({
id:n.third_id,
name:n.third_name,
age:n.age,
parent:n.parent,
people:n.people
});
}
}else{
first.children.push({
id:n.second_id,
name:n.second_name,
age:n.age,
parent:n.parent,
people:n.people,
children:[{
id:n.third_id,
name:n.third_name,
age:n.age,
parent:n.parent,
people:n.people
}]
});
}
}else{
finalData.push({
id:n.first_id,
name:n.first_name,
age:n.age,
parent:n.parent,
people:n.people,
children:[{
id:n.second_id,
name:n.second_name,
age:n.age,
parent:n.parent,
people:n.people,
children:[{
id:n.third_id,
name:n.third_name,
age:n.age,
parent:n.parent,
people:n.people
}]
}]
});
}
});
}

functiongetRecordById(id,data){
for(vari=0,n=data.length;i<n;i++){
if(data[i].id==id)returndata[i];
}
returnnull;
}

‘拾’ java后台的json值怎么传给jsp页面,并进行遍历

首先看你的后台是用的什么。
1、servlet,把json放在request(session)对象里,然后返回,jsp在request里取。
2、框架,放在form表单里带回去,jsp页面用标签直接调用。

遍历的方式很多,《% %》的方式 或者《C:BEAN》等方式都可以

满意请采纳。

热点内容
幼儿园源码php 发布:2025-01-17 02:41:45 浏览:401
win引导Linux 发布:2025-01-17 02:36:49 浏览:263
ftp是传输类协议吗 发布:2025-01-17 02:36:47 浏览:311
查看电视配置下载什么软件 发布:2025-01-17 02:36:41 浏览:159
宝马x330i比28i多哪些配置 发布:2025-01-17 02:35:59 浏览:573
服务器运维安全云帮手 发布:2025-01-17 02:35:48 浏览:72
c应用编程 发布:2025-01-17 02:35:16 浏览:941
ios清除app缓存数据免费 发布:2025-01-17 02:34:33 浏览:375
微信企业号上传文件 发布:2025-01-17 02:10:28 浏览:64
孩子几岁可以学习编程 发布:2025-01-17 02:09:55 浏览:602