字符串转JSONArray
2016-05-20 00:00
411 查看
摘要: 写的servlet返回一组数据,格式如:{"names":"[\"吃货\",\"吃货2\"]"} -------接口访问时候的返回值都是字符串
目的:处理返回时的数据
问题:java操作字符串相对麻烦,而且本身后台返回的就是json格式。
浏览器显示结果:
**注意:**第一行的值里面有 反斜杠+引号 的写法是为了JSON.parse(text)的参数要求。
这种形式(jsonObject + ArrayList)的json看起来有点怪异,解析时候才了解到阿里巴巴的jar包,估计一般不会这么用吧!
####方法二:
这种方法就方便多了。
下面就写一个测试类!
目的:处理返回时的数据
问题:java操作字符串相对麻烦,而且本身后台返回的就是json格式。
方法一:
为了可以更清晰的看到各种类型变化,我采用了小白调试的方法----print..//(以servlet类为测试环境) import java.util.ArrayList; import java.util.List; import org.json.JSONObject; //fastjson-1.2.11.jar 阿里巴巴的jar包 import com.alibaba.fastjson.JSON; .... PrintWriter out = response.getWriter();//servlet内置方法 ArrayList<String> names = new ArrayList<>(); names = DAO.getNames();//省略此方法 JSONObject job = new JSONObject(); try { job.put("names", names); out.println(job + " \t<---> job的类型: " + job.getClass().getName()); String namesString = job.getString("names"); out.println(namesString + " \t\t<---> nameSrting=job.getString(\"names\")的类型: " + namesString.getClass().getName()); @SuppressWarnings("unchecked") List<String> nList = (List<String>) JSON.parse(namesString); out.println(nList + " \t\t<---> nList=JSON.parse(nameSrting)的类型: " + nList.getClass().getName()); out.println(nList.size() + " \t\t<---> nList.size()"); Object[] arr = nList.toArray(); //转成数组对象 out.println(arr.length + " \t\t<---> arr.length"); for (int i = 0; i < arr.length; i++) { out.println("arr[" + i + "]: " + arr[i]); } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } ....
浏览器显示结果:
{"names":"[\"吃货\"]"} <---> job的类型: org.json.JSONObject ["吃货"] <---> nameSrting=job.getString("names")的类型: java.lang.String ["吃货"] <---> nList=JSON.parse(nameSrting)的类型: com.alibaba.fastjson.JSONArray 1 <---> nList.size() 1 <---> arr.length arr[0]: 吃货
**注意:**第一行的值里面有 反斜杠+引号 的写法是为了JSON.parse(text)的参数要求。
这种形式(jsonObject + ArrayList)的json看起来有点怪异,解析时候才了解到阿里巴巴的jar包,估计一般不会这么用吧!
####方法二:
这种方法就方便多了。
下面就写一个测试类!
import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; public class stringToList { public static void main(String[] args) throws JSONException { /*-----------构建json---------------*/ JSONObject job = new JSONObject(); JSONArray jsonArray = new JSONArray(); for (int i = 5; i < 9; i++) { jsonArray.put("吃货" + i); } job.put("names", jsonArray); String str = job.toString(); System.out.println("新建JSON:" + str); /*-----------解析json---------------*/ JSONObject json = new JSONObject(str); JSONArray ja = json.getJSONArray("names"); System.out.println("names Value:" + ja.toString()); for (int x = 0; x < ja.length(); x++) { System.out.println(x + 1 + ": " + ja.getString(x)); } } }
新建JSON:{"names":["吃货5","吃货6","吃货7","吃货8"]} names Value:["吃货5","吃货6","吃货7","吃货8"] 1: 吃货5 2: 吃货6 3: 吃货7 4: 吃货8
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树