• Json


    JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)

    JSON 是轻量级的文本数据交换格式

    JSON 独立于语言

    Java处理JSON数据有四个比较流行的类库FastJSON、Gson、Jackson和Json-lib。

    语法

    数据在名称/值对中

    数据由逗号分隔

    大括号保存对象

    中括号保存数组

    序列号和反序列号

    序列化就是指 把JavaBean对象转成JSON格式的字符串。

    反序列化就是把JSON格式的字符串转化为Java Bean对象。

    Jackson

    Gson

    Google Json

    FastJSON

    Fastjson是一个Java语言编写的高性能的JSON处理器,由阿里巴巴公司开发。

    Json-lib net.sf.json包

    json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包,

    包括commons-beanutils.jar,commons-collections-3.2.jar,commons-lang-2.6.jar,commons-logging-1.1.1.jar,ezmorph-1.0.6.jar,

    对于复杂类型的转换,json-lib对于json转换成bean还有缺陷,比如一个类里面会出现另一个类的list或者map集合,json-lib从json到bean的转换就会出现问题。

    json-lib在功能和性能上面都不能满足现在互联网化的需求。

    依赖包:

    commons-beanutils-1.8.0.jar、commons-collections-3.2.1.jar、commons-lang-2.5.jar、commons-logging-1.1.1.jar、ezmorph-1.0.6.jar、json-lib-2.4-jdk15.jar

    java JSON字符串解析

    org.json包

    从字符串jsonString获得JSONObject对象和JSONArray对象

    /*json字符串最外层是大括号时:*/

    JSONObject jsonObject = new JSONObject(jsonStr);

    /*json字符串最外层是方括号时:*/

    JSONArray jsonArray = new JSONArray(jsonStr);

    从JSONArray中获得JSONObject对象

    for (int i = 0; i < jsonArray.length(); i++) {

        JSONObject jsonObject = jsonArray.getJSONObject(i);

     }

    注意:

    /*JSONObject 获取jsonArray :需要数组的字段名*/

    JSONArray jsonArray = jsonObject.getJSONArray("children");

     

    遇到方括号时,就要先获取JSONArray,然后再循环遍历出JSONObject

    /*jsonArray获取JSONObject : 需要遍历数组*/

     for (int i = 0; i < jsonArray.length(); i++) {

        JSONObject jsonObject = jsonArray.getJSONObject(i);

     }

    通过JsonObject获取JSON内的具体数据:

    int mid= jsonObject.getInt ( "id" ) ;   

    //  这里的mid得到的数据就是123.

     

    String mcourse=jsonObject.getString( " courseID") ;  

    // 这里的mcourse得到的数据就是huangt-test.

    net.sf.json包

    JSONObject

    JSON对象

    JSONArray

    JSON数组

  • 相关阅读:
    java项目路径获取
    String.getBytes()和new String()(string与byte[]的转换)
    Android生成一维码
    Android PullToRefresh (GridView 下拉刷新上拉加载)
    Android PullToRefresh (ListView GridView 下拉刷新) 使用详解
    Android 二维码扫描框 加四个角及中间横线自动下滑
    android 百度地图定位开发2
    android 百度地图定位开发1
    广播发送者&广播接收者介绍
    电脑配置 eclipse 环境变量
  • 原文地址:https://www.cnblogs.com/panchanggui/p/9518571.html
Copyright © 2020-2023  润新知