本文目录一览:
- 1、java怎么将json对象转换成json数组
- 2、用Java语言:从下列Json数组中只展示“productTypeName=公路零担”的数据集?
- 3、java中把json怎么转换成数组?
- 4、java怎么读取json格式的数据
- 5、java怎么把数据转成json 数组
java怎么将json对象转换成json数组
1、需要json的相关jar包
2、设置json格式字符串:
String str="{\"student\":[{\"name\":\"leilei\",\"age\":23},{\"name\":\"leilei02\",\"age\":23}]}";
3、建立相应的类:
public class StudentList {
ListStudent student;
public ListStudent getStudent() {
return student;
}
public void setStudent(ListStudent student) {
this.student = student;
}
}
public class Student {
private String name;
private int age;
//private StudentClass studentClass;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
4、测试程序
import java.util.List;
import org.codehaus.jackson.map.ObjectMapper;
用Java语言:从下列Json数组中只展示“productTypeName=公路零担”的数据集?
java处理json,最经典的做法还是将String字符串转换成对象来处理。
需要借助第三方jar包,常见的第三方json处理jar包有:阿里巴巴的fastjson,谷歌的gson还有诸如jackson之类的。
我习惯用gson:
1、引入gson依赖或去网上下载其jar包:
dependency
groupIdcom.google.code.gson/groupId
artifactIdgson/artifactId
version2.3.1/version
/dependency
2、根据json串,定义对象:
首先定义json最外层,我称其为Response,Response中有根节点data:
这里我用了lombok的@Data注解,自动生成getter、setter、toString等方法。
然后定义了根节点对象Data1,里面有Record集合records:
之后就是定义Record的各个字段:
现在我就有了完整的数据结构,使用gson进行转换即可:
接下来拿着response对象进行正常的java逻辑处理就行:
完整代码:
public class TController {
public static void main(String[] args) {
String jsonString = "{\n" +
"\"data\":{\n" +
"\"records\":[\n" +
"{\n" +
"\"couponName\":\"\",\n" +
"\"payTime\":\"2021-11-15 11:11:33\",\n" +
"\"providerEndAddress\":\"\",\n" +
"\"paidMoney\":268,\n" +
"\"weihuUserId\":\"0\",\n" +
"\"productTypeName\":\"公路零担\"\n" +
"},\n" +
"{\n" +
"\"couponName\":\"\",\n" +
"\"payTime\":\"2021-11-15 11:11:33\",\n" +
"\"providerEndAddress\":\"\",\n" +
"\"paidMoney\":268,\n" +
"\"weihuUserId\":\"0\",\n" +
"\"productTypeName\":\"航空运输\"\n" +
"}\n" +
"]\n" +
"}\n" +
"}";
Gson gson = new Gson();
Response response = gson.fromJson(jsonString, Response.class);
Data1 data = response.getData();//取出data
ListRecord records = data.getRecords();//取出records
for (int i = 0; i records.size(); i++) {
//循环判断records中的数据,ProductTypeName不为“公路零担”则移除
if (!"公路零担".equals(records.get(i).getProductTypeName())) {
records.remove(i);
i--;
}
}
data.setRecords(records);//覆盖原有的records
response.setData(data);//覆盖原有的data
System.out.println(gson.toJson(response, Response.class));//转成json字符串输出
}
@Data
private class Response {
private Data1 data;
}
@Data
private class Data1 {
private ListRecord records;
}
@Data
private class Record {
private String couponName;
private String payTime;
private String providerEndAddress;
private String paidMoney;
private String weihuUserId;
private String productTypeName;
}
}
运行结果:
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运算符为数组元素分配内存空间的方式称为动态分配方式。
以上内容参考:百度百科-数组
java怎么读取json格式的数据
java可以使用JSONObject和JSONArray来操作json对象和json数组,具体用法如下
1:java对象与json串转换:
java对象—json串:
JSONObject JSONStr = JSONObject.fromObject(object);
String str = JSONStr.toString();
json串—java对象:
JSONObject jsonObject = JSONObject.fromObject( jsonString );
Object pojo = JSONObject.toBean(jsonObject,pojoCalss);
2:java数组对象与json串转换:
java数组—json串:
JSONArray arrayStr = JSONArray.fromObject(List?);
String str = arrayStr.toString();
json串—java数组:
JSONArray array = JSONArray.fromObject(str);
List? list = JSONArray.toList(array, ?.class);
java怎么把数据转成json 数组
有两种方法实现:
(1)直接转换:
创建JSONArray对象、JSONObject对象,通过put方法将其数据以键值对的形式填充,如例:
//假如有一个Java实体类Person,包括以下属性:phone、sex、married、address。
ArrayListPerson persons = new ArrayListPerson();
for (int i = 0; i 3; i++) {
persons.add(new Person("138******67", "女", true, "北京朝阳区"));//填充Java实体类集合
}
JSONArray array = new JSONArray();// Json格式的数组形式
JSONObject obj;//json格式的单个对象形式
for (int i = 0; i persons.size(); i++) {
obj = new JSONObject();
//依次填充每一个Java实体对象
try {
obj.put("phone", persons.get(i).getPhone());//json通过put方式以key-value形式填充
obj.put("sex", persons.get(i).getSex());
obj.put("married", persons.get(i).getMarried());
obj.put("address", persons.get(i).getAddress());
array.put(obj);//将JSONObject添加入JSONArray
} catch (JSONException e) {
e.printStackTrace();
}
}
(2)通过GSON工具实现:
只需要创建GSON对象,通过toJson方法转换即可。如例:
//模拟Java数据
Person person = new Person("敏敏", 23, "女", "北京市海淀区");
//创建GSON对象
Gson gson = new Gson();
//调用toJson方法即可转换为字符串的json格式
String json = gson.toJson(person);