建设网站的目的和内容,logo免费设计图案,微网站O2O平台平台开发,怎么样做一个个人网站json字符串的处理 【1】解析json字符串#xff08;1#xff09;如果json格式字符串 #xff0c;最外层 是 中括号#xff0c;表示数组#xff0c;就使用方法#xff08;2#xff09;如果json格式字符串#xff0c;最外层是 大括号#xff0c;表示对象#xff0c;就是… json字符串的处理 【1】解析json字符串1如果json格式字符串 最外层 是 中括号表示数组就使用方法2如果json格式字符串最外层是 大括号表示对象就是用方法3数组 和 对象可以相互嵌套4java遍历修改json数组里的某个字段值5java遍历修改更复杂的嵌套json数组里的某个字段值 【2】JSONUtil工作介绍1JSON字符串创建2JSON字符串解析3XML字符串转换为JSON4JSON转换为XML5JSON转Bean6常见JSON操作方法 【1】解析json字符串
java处理json格式字符串首先转成 JSONArray 或 JSONObject 类型如果有实际对象类的话也可以直接转成对象
1如果json格式字符串 最外层 是 中括号表示数组就使用方法
JSONArray array JSONArray.parseArray(text);2如果json格式字符串最外层是 大括号表示对象就是用方法
JSONObject result JSONArray.parseObject(text);3数组 和 对象可以相互嵌套
就相当于 JSONArray 和 JSONObject 可以相互嵌套 JSON对象的用法和java中 List Map 用法是一样的 1-可以通过JSONArray循环获取每一项的值 有get 和 add 方法 取值 赋值 2-JSONObject 可以 通过 get 和 put 方法取值赋值 处理完数据后还可以通过 toJSONString方法转为字符串
4java遍历修改json数组里的某个字段值
JSONArray feedetailList data.getJSONArray(feedetailList);
for (int i 0; i feedetailList.size(); i) {feedetailList.getJSONObject(i).put(psnNo,data.getString(psnNo));
}5java遍历修改更复杂的嵌套json数组里的某个字段值
1因为没有具体的对象所以将json直接转成json数组JSONObject 2在取嵌套的内容时如果是数组就用getJSONArray如果是对象就用getJSONObject 3要往数组里存入值就用add取值就用get要往对象里存入值就用set取值就用get
// 实时更新数据
DataModelRelation dataModelRelation indDataModel.getDataModelRelation();
String layout dataModelRelation.getLayout();
// 解析 JSON 字符串为 JSONObject
JSONObject jsonObject new JSONObject(layout);// 获取最底层的 JSONArray
JSONArray layoutInfo jsonObject.getJSONArray(cells);
for (int i 0; i layoutInfo.size(); i) {JSONObject cell layoutInfo.getJSONObject(i);JSONObject data cell.getJSONObject(data);if (ObjectUtil.isNotNull(data)) {String id data.get(id).toString();if (ObjectUtil.isNotNull(id)) {IndTable indTable iIndTableRepo.queryById(Long.valueOf(id));if (ObjectUtil.isNotNull(indTable)) {layoutInfo.getJSONObject(i).getJSONObject(data).set(tableNameZh,indTable.getTableNameZh());}}}
}
jsonObject.set(cells,layoutInfo);
dataModelRelation.setLayout(JSONUtil.toJsonStr(jsonObject));
indDataModel.setDataModelRelation(dataModelRelation);【2】JSONUtil工作介绍
1JSON字符串创建
JSONUtil.toJsonStr可以将任意对象Bean、Map、集合等直接转换为JSON字符串。 如果对象是有序的Map等对象则转换后的JSON字符串也是有序的。 /*** 转换为JSON字符串* p* 被转为JSON的对象** return JSON字符串*/Testvoid toJsonStrTest() {//mapSortedMapObject, Object sortedMap new TreeMapObject, Object() {private static final long serialVersionUID 1L;{put(attributes, a);put(b, b);put(c, c);}};//对象Student beanString new Student(1, 1, 1, 张三);//集合ListStudent list new ArrayList();list.add(new Student(1, 1, 1, 张三));list.add(new Student(1, 1, 2, 李四));list.add(new Student(1, 1, 3, 王五));System.out.println(JSONUtil.toJsonStr(beanString) JSONUtil.toJsonStr(beanString));System.out.println(JSONUtil.toJsonStr(sortedMap) JSONUtil.toJsonStr(sortedMap));System.out.println(JSONUtil.toJsonStr(list) JSONUtil.toJsonStr(list));}
结果
JSONUtil.toJsonStr(beanString) {gradeId:0,studentId:1,termId:1,classId:1,name:张三}
JSONUtil.toJsonStr(sortedMap) {attributes:a,b:b,c:c}
JSONUtil.toJsonStr(list) [{gradeId:0,studentId:1,termId:1,classId:1,name:张三},
{gradeId:0,studentId:2,termId:1,classId:1,name:李四},
{gradeId:0,studentId:3,termId:1,classId:1,name:王五}]如果我们想获得格式化后的JSON则
JSONUtil.toJsonPrettyStr(object);System.out.println(JSONUtil.toJsonPrettyStr(sortedMap) JSONUtil.toJsonPrettyStr(sortedMap));结果
JSONUtil.toJsonPrettyStr(sortedMap) {attributes: a,b: b,c: c
}2JSON字符串解析
/*** JSON字符串转JSONObject对象* p* JSON字符串** return JSONObject*/
Test
void Test() {String html {\name\:\Something must have been changed since you leave\};JSONObject jsonObject JSONUtil.parseObj(html);System.out.println(jsonObject.getStr(\name\) jsonObject.getStr(name));
}结果
jsonObject.getStr(name) Something must have been changed since you leave3XML字符串转换为JSON /*** XML字符串转为JSONObject** XML字符串* return JSONObject*/Testvoid parseFromXmlTest() {String s sfzh123/sfzhsfz456/sfznameaa/namegender1/gender;JSONObject json JSONUtil.parseFromXml(s);System.out.println(json.get(\sfzh\) json.get(sfzh));System.out.println(json.get(\name\) json.get(name));}结果
json.get(sfzh) 123
json.get(name) aa4JSON转换为XML /*** 转换为XML字符串** param json JSON* return XML字符串*/Testvoid toXmlStrTest() {final JSONObject put JSONUtil.createObj().set(aaa, 你好).set(键2, test);// aaa你好/aaa键2test/键2final String s JSONUtil.toXmlStr(put);System.out.println(s s);}结果
s aaa你好/aaa键2test/键25JSON转Bean
我们先定义两个较为复杂的Bean包含泛型 Datapublic class ADT {private ListString BookingCode;}Datapublic class Price {private ListListADT ADT;}/*** JSON字符串转为实体类对象转换异常将被抛出** param T Bean类型* param jsonString JSON字符串* param beanClass 实体类对象* return 实体类对象* since 3.1.2*/Testvoid toBeanTest() {String json {\ADT\:[[{\BookingCode\:[\N\,\N\]}]]};Price price JSONUtil.toBean(json, Price.class);System.out.println(price price);}6常见JSON操作方法 put(key, value): 向JSON对象中添加键值对。 get(key): 获取JSON对象中指定键的值。 getString(key): 获取JSON对象中指定键的字符串值。 getInt(key): 获取JSON对象中指定键的整数值。 getJSONObject(key): 获取JSON对象中指定键的嵌套JSON对象。 getJSONArray(key): 获取JSON对象中指定键的JSON数组。 toString(): 将JSON对象转换为字符串。 parse(jsonString): 解析JSON字符串为JSON对象。 toBean(jsonString,class):将JSON转换为Java对象 toJsonStr(object):将Java对象转换为JSON字符串 使用实例
javaCopy codeimport com.example.JSONUtil; // 假设这是的JSONUtil类public class JSONUtilExample {public static void main(String[] args) {// 创建JSON对象JSONUtil jsonUtil new JSONUtil();jsonUtil.put(name, John);jsonUtil.put(age, 30);// 将JSON转为字符串String jsonString jsonUtil.toString();System.out.println(JSON String: jsonString);// 解析JSON字符串JSONUtil parsedJSON JSONUtil.parse(jsonString);String name parsedJSON.getString(name);int age parsedJSON.getInt(age);System.out.println(Name: name);System.out.println(Age: age);//使用JSONUtil.toBean将JSON转换为Java对象//假设从某个来源获取了一个JSON字符串String jsonString {\name\:\John\,\age\:30};Person person JSONUtil.toBean(jsonString, Person.class);// 使用JSONUtil.toJsonStr将Java对象转换为JSON字符串Person person new Person(John, 30, new String[]{Reading, Gaming});String jsonStr JSONUtil.toJsonStr(person);}}