字符串转换成JSON的两种常用方法
来源:互联网 发布:qt access数据库 2003 编辑:程序博客网 时间:2024/06/05 03:14
阿里的 特别方便:
你给的json串是数组,要用 JSON.parseArray 转换成数组来获取,
JSONArray json = JSON.parseArray(str);
你给的是json串是字符串,要用
JSONObject jso = JSON.parseObject(json)处理
--------------------------------------------------------------------------
第一个,比较正常的,在阿里jar之前:
package com.lyt.test.json;import net.sf.json.JSONArray;import net.sf.json.JSONObject;public class StringToJson {public static void main(String[] args) {JSONArray a = new JSONArray();a.add("{'id':'1','companyName':'美分期1'}");a.add("{'id':'2','companyName':'美分期2'}");a.add("{'id':'3','companyName':'美分期3'}");System.out.println(a.toString());String str = "[{'id':'1','companyName':'美分期1'},{'id':'2','companyName':'美分期2'},{'id':'3','companyName':'美分期3'}]" ; // 一个未转化的字符串JSONArray json = JSONArray.fromObject(str); // 首先把字符串转成 JSONArray 对象if(json.size()>0){ for(int i=0;i<json.size();i++){ JSONObject job = json.getJSONObject(i); // 遍历 jsonarray 数组,把每一个对象转成 json 对象 System.out.println(job.get("id")+"=" + job.get("companyName")) ; // 得到 每个对象中的属性值 }}}}比如Controller中封装String id = request.getParameter("id");AppEdition appEdition = appEditionService.findById(Integer.valueOf(id));model.addAttribute("appEdition", appEdition);ChannelAppIdentification.Android.getName();ChannelAppIdentification.MILLET_MALL.getName();// 数据库中读取出来的字段是这样的:[{'channelStore':'1','path':'美分期1'},{'channelStore':'2','path':'美分期2'},{'channelStore':'3','path':'美分期3'}]JSONArray json = JSONArray.fromObject(appEdition.getAppPath()); // 首先把字符串转成 JSONArray 对象model.addAttribute("json", json);页面获取:<c:forEach items="${json }" var="json"><tr><td style="width: 150px;border: solid 1px #cccccc;">${json.channelStore }</td><td style="border: solid 1px #cccccc;border-left: 0;width: 400px;">${json.path }</td></tr></c:forEach>
这个是一个小demo,可以把数据放入到model中 然后在jso页面接收并使用
第二个就是利用阿里巴巴的jar来进行转换
package org.com.lyt.jsonutil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; /** * @Author:liyintao * @Description: * @Date:下午 5:50 2017/9/12 0012. */ public class StringToFastJson { public static void main(String[] args) { new StringToFastJson().stringTofastJson1(); } public static void stringTofastJson() { String json = "{\"name\":\"刘德华\",\"age\":35,\"some\":[{\"k1\":\"v1\",\"k2\":\"v2\"},{\"k3\":\"v3\",\"k4\":\"v4\"}]}"; JSONObject jso = JSON.parseObject(json);//json字符串转换成jsonobject对象 System.out.println("初始jsonObject:\n"+jso+"\n"); // [{"k1":"v1","k2":"v2"},{"k3":"v3","k4":"v4"}] JSONArray jsarr = jso.getJSONArray("some");//jsonobject对象取得some对应的jsonarray数组 System.out.println("jsonObject里面的jsonarray:\n"+jsarr+"\n"); JSONObject ao = jsarr.getJSONObject(0);//jsonarray对象通过getjsonobjext(index)方法取得数组里面的jsonobject对象 System.out.println("jsonObject里面的jsonarray里面的第一个jsonobject:\n"+ao+"\n"); String vString = ao.getString("k1");//jsonobject对象通过key直接取得String的值 System.out.println("jsonObject里面的jsonarray里面的第一个jsonobject里的键值对对k1取值:\n"+vString+"\n"); } public static void stringTofastJson1() { String str = "[{'id':'1','companyName':'美分期1'},{'id':'2','companyName':'美分期2'},{'id':'3','companyName':'美分期3'}]" ; // 一个未转化的字符串 // json字符串转换成JSONArray数组 JSONArray json = JSON.parseArray(str); System.out.println("初始jsonObject:\n"+json+"\n"); if(json.size()>0){ for(int i=0;i<json.size();i++){ JSONObject job = json.getJSONObject(i); // 遍历 jsonarray 数组,把每一个对象转成 json 对象 System.out.println(job.get("id")+"=" + job.get("companyName")) ; // 得到 每个对象中的属性值 } } } }
阿里的 特别方便:你给的json串是数组,要用 JSON.parseArray 转换成数组来获取,JSONArray json = JSON.parseArray(str);你给的是json串是字符串,要用JSONObject jso = JSON.parseObject(json)处理
阅读全文
1 0
- 字符串转换成JSON的两种常用方法
- json格式的字符串转换成了JSON对象的两种方法(eval()和JSON.parse())
- 转换字符串型的两种方法
- 对象转换成JSON字符串的方法
- 字符串转换成json对象的方法
- 对象转换成json字符串的方法
- 在JavaScript中将JSON的字符串解析成JSON数据格式的两种方法
- 在JavaScript中将JSON的字符串解析成JSON数据格式的两种方法
- json 字符串类型两种转换
- 用jquery解析JSON数据的方法以及字符串转换成json的3种方法
- json数据格式转换成树形状态两种方法
- javascript字符串转换成日期型的两种方法
- javascript字符串转换成日期型的两种方法
- java字符串大小写转换的两种方法
- 两种常用的字符串的比较方法
- java对象转换成json 字符串的方法
- js' 字符串转换成JSON对象的方法
- 转换字符串为json对象的方法
- 静态块和构造块
- 社交系统ThinkSNS+ V0.8.7发布,“问答”功能千呼万唤始出来
- HDU 6199(DP)补题+一个超级有用的滚动数组思想
- OpenCV的等高线画法
- day2
- 字符串转换成JSON的两种常用方法
- iOS 网络环境模拟&流量监控实战
- OpenGL矩阵和坐标变换
- Linux进程的组成部分
- attr()和prop()
- Mybatis获取插入记录的自增长ID
- websocket实现简单聊天程序
- caffe添加层的步骤
- 浅谈HTTP协议