JsonArray用法(二)

JsonArray用法(二)一 json 格式字符串在 java 中转成 JSONArray 或者 JSONObject 一 java 处理 json 格式字符串首先转成 JSONArray 或 JSONObject 类型 1 如果是 JSONArray 格式 最外层是中括号 表示数组 JSONArrayarr JSONArray parseArray text 注 text 必须是 json 格式的

一 JSONArray和JSONOject的用法

JSONArray用法

1 解析字符串 JSONArray jsonarr = JSONArray.parseArray(str); 2 存值取值 (1) 存值 jsonarr.add(obj); (2) 取值 for(int i =0; i <= jsonarr.size(); i++){ jsonarr[i].get(key); } 3 格式: 本质是数组, 必须是数组格式, 用 [ ] 包裹数据 格式: [{key:value},{key:value}... ] ["str1","str2","str3",...] 

JSONObject的用法

1 解析字符串 JSONObject obj = JSONArray.parseObject(str); 2 存值取值 (1) 存值 obj.put("key", key); obj.put("value", value); (2) 取值 value = obj.get(key); 3 格式: 本质是对象, 用 {} 表示 格式: {key:value} 

案例

public class JsonTest { 
    public static void main(String[] args) { 
    String s1 = "[]"; String s2 = "[{}]"; String s3 = ""; String s4 = null; String s5 = "[{\"functionId\":\"14\",\"needBuy\":false,\"functionName\":\"功能1\"},{\"functionId\":\"17\",\"needBuy\":false,\"functionName\":\"功能2\"}]"; String s6 = "{}"; JSONArray jsonarr1 = JSONArray.parseArray(s1); JSONArray jsonarr2 = JSONArray.parseArray(s2); JSONArray jsonarr3 = JSONArray.parseArray(s3); JSONArray jsonarr4 = JSONArray.parseArray(s4); JSONArray jsonarr5 = JSONArray.parseArray(s5); //JSONArray jsonarr6 = JSONArray.parseArray(s6); Object obj1 = JSONObject.parse(s1); Object obj2 = JSONObject.parse(s2); Object obj3 = JSONObject.parse(s3); Object obj4 = JSONObject.parse(s4); Object obj5 = JSONObject.parse(s5); Object obj6 = JSONObject.parse(s6); System.out.println("s1 = " + jsonarr1); System.out.println("s2 = " + jsonarr2); System.out.println("s3 = " + jsonarr3); System.out.println("s4 = " + jsonarr4); System.out.println("s5 = " + jsonarr5); //System.out.println("s6 = " + jsonarr6); System.out.println(""); System.out.println("obj1 = " + obj1); System.out.println("obj2 = " + obj2); System.out.println("obj3 = " + obj3); System.out.println("obj4 = " + obj4); System.out.println("obj5 = " + obj5); System.out.println("obj6 = " + obj6); 答案: 打印第6条因格式不对, 会报错, 所以注释了 s1 = [] s2 = [{ 
   }] s3 = null s4 = null s5 = [{ 
   "functionId":"14","needBuy":false,"functionName":"功能1"},{ 
   "functionId":"17","needBuy":false,"functionName":"功能2"}] //Exception in thread "main" com.alibaba.fastjson.JSONExcept obj1 = [] obj2 = [{ 
   }] obj3 = null obj4 = null obj5 = [{ 
   "functionId":"14","needBuy":false,"functionName":"功能1"},{ 
   "functionId":"17","needBuy":false,"functionName":"功能2"}] obj6 = { 
   } 

总结

 只要格式正确, 空字符串和null都是可以解析的 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233423.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 基于opencv的图像校正_伽马校正怎么设置

    基于opencv的图像校正_伽马校正怎么设置#include"stdafx.h"#include&lt;cmath&gt;#include&lt;iostream&gt;#include&lt;opencv2\core\core.hpp&gt;#include&lt;opencv2\highgui\highgui.hpp&gt;#include&lt;opencv2\imgproc\imgproc.hp…

    2022年9月25日
    6
  • matlab导入文件夹里所有图片_如何创建快捷方式到指定文件夹

    matlab导入文件夹里所有图片_如何创建快捷方式到指定文件夹在matlab中,直接imwrite()保存图片,会保存到当前工作目录文件夹或其子文件夹。%直接保存imwrite(picture,’test1.png’)%在当前工作目录下新建文件夹并保存mkdirimage%如果文件夹已存在,会有警告,但不影响运行imwrite(picture,’image/test1.png’)如果要把图片保存到其他指定的文件夹,…

    2025年11月7日
    1
  • ubuntu完全卸载_docker安装ubuntu

    ubuntu完全卸载_docker安装ubuntudpkg-l|grepdockeraptremove–purgedockker.io

    2022年8月30日
    6
  • 补码的加减法运算_简述补码减法运算的规则

    补码的加减法运算_简述补码减法运算的规则补码的加减法运算本文内容参考自王达老师的《深入理解计算机网络》一书&lt;中国水利水电出版社&gt;一、补码加法:1、补码的加法运算两个机器数相加的补码可以先通过分别对两个机器数求补码,然后再相加得到,在采用补码形式表示时,进行加法运算可以把符号位和数值位一起进行运算(若符号位有进位,导致了益出,则直接舍弃),结果为两数之和的补码形式。示例1:求两个十进制数的和35+18。首先,规…

    2022年9月13日
    3
  • 此视频无法播放0xc00d36c4_视频播放失败代码-30

    此视频无法播放0xc00d36c4_视频播放失败代码-30相信很多用户都遇到过视频无法播放的问题。比如将重要视频从旧电脑拷到U盘上,使用另一台电脑播放时,提示视频播放错误代码0xc00d36c4,不支持该视频播放。其实,视频无法播放的问题是很常见的,不少用户在电脑上连接相机或者手机后播放视频,也会提示0xc00d36c4。出现这样的问题要怎么解决,怎么才能修复该视频文件使其正常播放?播放MP4格式视频显示错误代码0xc00d36c4的情况大多数情况下,…

    2022年9月29日
    3
  • 新手小白学JAVA 面向对象之多态

    新手小白学JAVA 面向对象之多态4多态4.1概念多态指同一个实体同时具有多种形式它是面向对象程序设计(OOP)的一个重要特征。主要是指同一个对象,在不同时刻,代表的对象不一样,指的是对象的多种形态。好处是:可以把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,统一调用标准。水果有两种形态:水果和苹果,不关心买回来的是苹果还是西瓜,只要是水果就行classAnimal{//1.定义父类Animal…eat(){syso(“吃啥都行”)}}classCatexte

    2022年7月19日
    14

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号