zoukankan      html  css  js  c++  java
  • JsonUtil(工具类)

    WebBuilder使用的操作json的jar包是org.json,下面是相关的文档及源码,搜索就可得

    文档:http://www.json.org/javadoc/org/json/JSONObject.html

    源码:https://github.com/douglascrockford/JSON-java

    本文默认读者熟练使用JSON,了解JSON语法,开始正题:

    从文档和源码看来org.json没有多少东西,的确他就是很简单,没有多少东西,在这几个仅有的类中,我们要经常使用也只有JSONArray和JSONObject两个,先看一下JSONObject

    • JSONObject

    (1)构造函数(重点关注以下几个):

    JSONObject()
              构造一个空的JSON对象:{}
    JSONObject(JSONObject jo, java.lang.String[] names)
              通过其他的JSONObject构建,取其中的几个KEY
     
    JSONObject(java.util.Map map)
              根据map构造,我们都知道map就是键值对,跟JSON一样.
     
    JSONObject(java.lang.String source)
              根据一个字符串构造,需要注意的是字符串要符合 json的语法{}
     

    (2)重要方法,最需要关注的方法就是读和写,读有两个方法get和opt,两个方法都用于读取,区别是如果提供的KEY并不存在,get会抛出异常,而opt会返回一个默认值

    有大量getInt(String key) ;getString(...);optDouble()..........

    对于改,写操作只有一个方法put,put方法的使用方式是put(key,newValue);这样就基本上掌握了JSONObject的使用了,下面还有几个方法,其他的冷门如果遇到我们再补充

    has(key),isNull(key)判断key是否存在

    keys()获取所有的key,返回值为Iterator集合

    remove(key)移除某属性

    toString()生成json字符串

    • JSONArray

    JSONArray就是一个数组,当然准确地说应该是个ArrayList,这点我们可以从源码的构造函数看到,同样我们先关注他的构造函数,与JSONObject相同有一个空的构造函数,一个根据字符串的构造函数,比较JSONObject有一个根据map的构造函数,JSONArray有一个根据Collection的构造函数。

    JSONArray的方法我们同样使用get和opt来读取数据,put方法来添加修改

    注意一点:操作JSONObject我们都是使用key来操作的,但JSONArray我们是使用INDEX下标值来操作的。


    org.json的知识就是上面这些,我们来看看工具类JsonUtil使用它做了什么:

    1.public static HashMap<JSONObject, JSONObject> getRelations(JSONArray jsonArray, ArrayList<JSONObject> children, String key){}

    调用方法2,获取关系map

    2.private static void markParent

    (HashMap<JSONObject, JSONObject> map,JSONObject parent,JSONArray jsonArray,ArrayList<JSONObject> children, String key){}

    3.public static String insert(JSONArray ja, String text, int index)

    在数组的某个位置插入内容

    4.public static JSONObject readObject(File file)

    读取文件内容转换为JSONObject

    5.public static JSONArray readArray(File file)

    读取文件内容转换为JSONArray 

    6.public static String optString(JSONObject jo, String key)

    在一个JSONObject中找出key对应的value

    7.public static String optString(JSONArray ja, int index)

    在一个JSONArray里找到一个下标对应值

    8.public static Object opt(JSONObject jo, String key)

    与6相似,返回Object

    9.public static Object opt(JSONArray ja, int index)

    与7相似,返回Object

    10.public static void clear(JSONObject jo)

    把JSONObject的每一个属性都设置为空

    11.public static String getText(ArrayList<String> list)

    把一个ArrayList转化为字符串数组的形式

    12.public static JSONObject findObject(JSONArray ja, String key, String text)

    在JSONArray里找出一个符合key,text的JSONObject

  • 相关阅读:
    PID入门的十五个基本概念
    串级调节系统参数整定方法(串级调节器参数整定)
    PID参数整定快速入门(调节器参数整定方法)
    在 Altium designer 09 中显示隐藏飞线
    如何高效利用GitHub
    基于markdown的blog系统调研1:typecho
    使用GitBook, Git github, Markdown 快速发布你的书籍
    献给写作者的 Markdown 新手指南及语法
    ubuntu搭建Git服务器
    CentOS搭建git服务器实测
  • 原文地址:https://www.cnblogs.com/wychytu/p/4012066.html
Copyright © 2011-2022 走看看