json是一种轻量级的数据交换格式。它基于JavaScript的一个子集。JSON采用完全独立于语言的文本格式,那json数据怎么处理?下面来我们就来给大家讲解一下。
1.可以先进行判断,是jsonObject:{"":""}还是Arrayjson:[{},{}],使用JSONTokener(自己知道的情况下就简单一些)
ArrayList arrayList = new ArrayList < > (); try { Object json = new JSONTokener(response) .nextValue(); if (json instanceof JSONArray) { JSONArray array = new JSONArray(response); for (int i = 0; i < array.length(); i++) { < p = "" > arrayList.add(array.get(i)); } return arrayList; } } catch (JSONException e) { e.printStackTrace(); }
2.自己写一个类,处理json
package com.example.fitness_app; import com.example.fitness_app.bean.FitnessCourse; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.json.JSONTokener; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; public class MyJson { //返回json对象 public JSONObject JsonToObject(String response) { try { Object json = new JSONTokener(response) .nextValue(); if (json instanceof JSONObject) { JSONObject jso = new JSONObject(response); return jso; } } catch (JSONException e) { e.printStackTrace(); } return null; } //返回list集合 public List JsonToList(String response) { ArrayList arrayList = new ArrayList < > (); try { Object json = new JSONTokener(response) .nextValue(); if (json instanceof JSONArray) { JSONArray array = new JSONArray(response); for (int i = 0; i < array.length(); i++) { < p = "" > arrayList.add(array.get(i)); } return arrayList; } } catch (JSONException e) { e.printStackTrace(); } return null; } //返回list集合 public ListJsonToListTeacherCourse(String response) { ArrayListarrayList = new ArrayList < > (); // SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Object json = new JSONTokener(response) .nextValue(); if (json instanceof JSONArray) { JSONArray array = new JSONArray(response); for (int i = 0; i < array.length(); i++) { < p = "" > FitnessCourse f = new FitnessCourse(); JSONObject jsonObject = array.getJSONObject(i); if (jsonObject.get("id") != null) { f.setId(Long.parseLong(jsonObject.get("id") .toString())); } if (jsonObject.get("name") != null) { f.setName((String) jsonObject.get("name")); } if (jsonObject.get("description") != null) { f.setDescription((String) jsonObject.get("description")); } if (jsonObject.get("courseDay") != null) { f.setCourseDay((String) jsonObject.get("courseDay")); } if (jsonObject.get("courseTime") != null) { f.setCourseTime((String) jsonObject.get("courseTime")); } if (jsonObject.get("teacherId") != null) { f.setTeacherId(Long.parseLong(jsonObject.get("teacherId") .toString())); } arrayList.add(f); } return arrayList; } } catch (JSONException e) { e.printStackTrace(); } return null; }
3. 在带有泛型的情况下不能强转!(不带的情况下,子父类可以互相强转!!)
4.可以通过循环单个取出强转
Listcourses = myJson.JsonToListTeacherCourse(t_course); List list = myJson.JsonToList(t_course); ArrayListcourses1 = new ArrayList < > (); for (int i = 0; i < list.size(); i++) { < p = "" > FitnessCourse o = (FitnessCourse) list.get(i); }
json格式如何转换?
可以先转换为json对象再进行转换。json格式都是使用键值对的结构,所以需要转换为其他格式都可以对json对象进行遍历处理。另外可以使用正则表达式进行特定的转换,但是一般不推荐这样做。
json易于人阅读和编写,同时也易于机器解析和生成,所以在实际开发中,大家要掌握json的转换方法,有助于开发效率!最后大家如果想要了解更多json工具教程知识,敬请关注奇Q工具网。
推荐阅读:
ultraedit自动缩进怎么操作?ultraedit有哪些功能?