有时保存在数据库的数据是一串json字符串,需要进行读取的时候就需要解析操作。

简单介绍两种:

1、net.sf.json.*

2、com.alibaba.fastjson.*

需要的包自行下载。

第一种使用方式:

import net.sf.json.JSONArray;
import net.sf.json.JSONException;
import net.sf.json.JSONObject;

仅为json字符串时:

String json = "{'first': 'one','next': 'two'}";

try {

                                      JSONObject jsonObject = JSONObject.fromObject(json);

                                      Iterator it=jsonObject.keys();

                                      while (it.hasNext()){

                                      System.out.println(jsonObject.get(it.next()));

                                      }

                                      } catch (JSONException e) {

                                      e.printStackTrace();

                                      }

json字符串数组解析:

String json = "[{'first': 'one','next': 'two'},{'first': 'three','next': 'fore'},{'first': 'five','next': 'six'}]";

                                      try {

                                      JSONArray jsonObject = JSONArray.fromObject(json);
                                      for (Iterator<Object> iterator = jsonObject.iterator(); iterator.hasNext();) {
                                          JSONObject job = (JSONObject) iterator.next();
                                          Iterator<Object> it=job.keys();
                                          while (it.hasNext()){
                                              System.out.println(job.get(it.next()));

                                              }
                                      }
                                      } catch (JSONException e) {

                                      e.printStackTrace();

                                      }

第二种使用方式:

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;

仅为json字符串时:

ex:  String json = "{"j1":"json1","j2":"2","j3":false}";

JSONObject job = JSONObject.parseObject(json );
                               System.out.println(job.get("j1"));

可用toString()来转换成字符串 但要注意job.get("")到的值为空时会报空指针异常
                                      if(job.get("j2")!=null){

System.out.println(Integer.parseInt(job.get("j2").toString()));
                                      }

//获取Boolean类型数据

Boolean b=job.getBoolean(key)

或者 if(job.get("j3")!=null){
                                          String reCP=job.get("j3").toString();
                                          System.out.println(Boolean.getBoolean(j3));

}

在不知道key的情况下用job.keySet() 获取所有key值再读取;

ex:

Set<String> s=job.keySet();
                                            for (String string : s) {
                                                System.out.println(job.get(string));
                                            }

json字符串数组解析:

ex:  String json = "[{"j1":"json1","j2":"2","j3":false},{"j1":"json1","j2":"2","j3":false},{"j1":"json1","j2":"2","j3":false}]";

JSONArray jarr = JSONArray.parseArray(insbuyschemeForm.getInsBuySchemeAwardList());
            for (Iterator<Object> iterator = jarr.iterator(); iterator.hasNext();) {
              JSONObject job = (JSONObject) iterator.next();

//此处获取方式和上面相同
            }

在不知道key的情况下用job.keySet() 获取所有key值再读取;

try {

                                          JSONArray jarr = JSONArray.parseArray(json);
                                          for (Iterator<Object> iterator = jarr.iterator(); iterator.hasNext();) {
                                            JSONObject job = (JSONObject) iterator.next();
                                            Set<String> s=job.keySet();
                                            for (String string : s) {
                                                System.out.println(job.get(string));
                                            }
                                          }
                                      
                                      } catch (JSONException e) {

                                      e.printStackTrace();

                                      }

两种包的解析都有很多方式,有兴趣可以看下其他方式。json字符串有很多组合,但是都是JSONObject 和JSONArray的组合,转换正确即可。

JSON字符串解析的更多相关文章

  1. Java基础-处理json字符串解析案例

    Java基础-处理json字符串解析案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 作为一名开发人员,想必大家或多或少都有接触到XML文件,XML全称为“extensible ...

  2. 前台的js对象数组传到后台处理。在前台把js对象数组转化为json字符串,在后台把json字符串解析为List<>

    前台的js对象数组传到后台处理.在前台把js对象数组转化为json字符串,在后台把json字符串解析为List<>

  3. VBScript把json字符串解析成json对象的2个方法

    这篇文章主要介绍了VBScript把json字符串解析成json对象的2个方法,本文通过MSScriptControl.ScriptControl和jscript实现,需要的朋友可以参考下 asp/v ...

  4. 复杂JSON字符串解析,可以少走弯路

    发现一个好文章:装载至http://www.verejava.com/?id=17174254038220 package com.json5;    import org.json.JSONArra ...

  5. Json字符串解析原理、超大json对象的解析

    概述 附上完整的代码:https://pan.baidu.com/s/1dEDmGz3(入口类是Json)JSON:JavaScript 对象表示法(JavaScript Object Notatio ...

  6. JSON字符串解析成JSON数据格式

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...

  7. 基于开源库jsoncpp的json字符串解析

    json(JavaScript Object Notation)是一种轻量级高效数据交换格式.相比于XML,其更加简洁,解析更加方便.在实习期间,我负责的程序模块,多次使用到json进行数据传输.由于 ...

  8. C#将json字符串解析成对象

    首先我们在客户端生成json字符串,通过ajax把该字符串传到服务器端   //这是一个以id,email,age的json字符串   var jdata="[{\"id\&quo ...

  9. 微信获取用户列表的json字符串解析

    今天学习微信遇到一个json的解析,但是因为自己的模型思维和思考能力很差一直困扰最后经过询问解决的问题,其实问题很简单总结起来就是json的解析: 注释:今天主要是讲怎样解析json的所以其他方法就只 ...

随机推荐

  1. javascript冒泡算法

    var arr = [10, 10, 3, 2, 5 , 4, 8, 3]; function reSort(arr) { var temp = 0; var len = arr.length; fo ...

  2. 关于 矩阵在ACM中的应用

    关于矩阵在ACM中的应用 1.矩阵运算法则 重点说说矩阵与矩阵的乘法,不说加减法. 支持: 结合律  (AB)C = A(BC) 分配律 A(B+C) = AB + AB $\left( \lambd ...

  3. 转王波洋,SQL语句中的 for XML Path('')

    FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作.那么以一个实例为主 ...

  4. [转载]Js小技巧||给input type=“password”的输入框赋默认值

    http://www.cnblogs.com/Raywang80s/archive/2012/12/06/2804459.html [转载]Js小技巧||给input type="passw ...

  5. 通过RGB灯输出七色

    本文由博主原创,如有不对之处请指明,转载请说明出处. /********************************* 代码功能:输出模拟信号,控制RGB灯的颜色 使用函数: pinMode(引脚 ...

  6. MSSQL附加数据库5120错误(拒绝访问)处理方法

    一. 右键需要附加的数据库文件,弹出属性对话框,选择安全标签页. 找到Authenticated Users用户名. 如未找到,进行Authenticated Users用户名的添加. 二. 添加Au ...

  7. eclipse删除所有空行

    在eclipse中删除某一行就用ctrl+D快捷键.如果你想删除一个文件中的所有空行呢.   可以用下面方法.   1.打开源码编辑器  2.使用快捷键Ctrl+f  3.在Find输入框中输入:^\ ...

  8. Eclipse之Git提交项目

    一.使用eclipse自带插件提交项目 1.自带git插件进行配置我们的用户名和密码,即是自己github注册的用户. windows-perferences-Team-Git-configurati ...

  9. 04 Apache Solr: 目录结构

         通过前面的介绍,我们已经能够看到管理员界面并对Solr形成了一个感性的认识.本篇将在物理上深入了解Solr的安装目录结构和Solr示例的主目录结构.   安装目录结构 Solr 6.3.0安 ...

  10. 运动 js

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...