JSONObject使用方法

               **参见API:E:\java学习笔记\JSON_NOTE\API**

JSONObject介绍

JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包。

下载jar包

http://files.cnblogs.com/java-pan/lib.rar

提供了除JSONObject的jar之外依赖的其他6个jar包,一共7个jar文件

说明:因为工作中项目用到的版本是1.1的对应jdk1.3的版本,故本篇博客是基于1.1版本介绍的。

对应此版本的javadoc下载路径如下:http://sourceforge.net/projects/json-lib/files/json-lib/json-lib-1.1/

目前最新的版本为2.4,其他版本下载地址为http://sourceforge.net/projects/json-lib/files/json-lib/

项目环境

system:WIN7 myeclipse:6.5 tomcat:5.0 JDK:开发环境和编译用的都是1.5

项目结构如下: 输入图片说明

说明:本次用到的的文件只有工程目录json包下的JSONObject_1_3类和note.txt

classmethod 基于11的API

做以下几点约定:

1.介绍基于JSONObject 1.1的API

2.只介绍常用的类和方法

3.不再介绍此版本中已经不再推荐使用

4.介绍的类和方法主要围绕本篇博客中用到的

JSONObject:A JSONObject is an unordered collection of name/value pairs.

是一个final类,继承了Object,实现了JSON接口

构造方法如下:

JSONObject();创建一个空的JSONObject对象

JSONObject(boolean isNull);创建一个是否为空的JSONObject对象

普通方法如下:

fromBean(Object bean);静态方法,通过一个pojo对象创建一个JSONObject对象

fromJSONObject(JSONObject object);静态方法,通过另外一个JSONObject对象构造一个JSONObject对象

fromJSONString(JSONString string);静态方法,通过一个JSONString创建一个JSONObject对象

toString();把JSONObject对象转换为json格式的字符串

iterator();返回一个Iterator对象来遍历元素

接下来就是一些put/get方法,需要普通的get方法和pot方法做一下强调说明,API中是这样描述的:

A get method returns a value if one can be found, and throws an exception if one cannot be found. An opt method returns a default value instead of throwing an exception, and so is useful for obtaining optional values.

JSONArray:A JSONArray is an ordered sequence of values.

是一个final类,继承了Object,实现了JSON接口

构造方法如下:

JSONArray();构造一个空的JSONArray对象

普通方法如下:

fromArray(Object[] array);静态方法,通过一个java数组创建一个JSONArray对象

fromCollection(Collection collection);静态方法,通过collection集合对象创建一个JSONArray对象

fromString(String string);静态方法,通过一个json格式的字符串构造一个JSONArray对象

toString();把JSONArray对象转换为json格式的字符串

iterator();返回一个Iterator对象来遍历元素

接下来同样是put/get方法……

XMLSerializer:Utility class for transforming JSON to XML an back.

一个继承自Object的类

构造方法如下:

XMLSerializer();创建一个XMLSerializer对象

普通方法如下:

setRootName(String rootName);设置转换的xml的根元素名称

setTypeHintsEnabled(boolean typeHintsEnabled);设置每个元素是否显示type属性

write(JSON json);把json对象转换为xml,默认的字符编码是UTF-8,

需要设置编码可以用write(JSON json, String encoding)

对XML和JSON字符串各列一个简单的例子

 JSON:

{"password":"123456","username":"张三"}

xml

<?xml version="1.0" encoding="UTF-8"?>

<user_info>

<password>123456</password>

<username>张三</username>

</user_info>

start

新建web工程,工程名称JS,导入以下7个jar包,文件在前面的准备工作中下载路径。

说明:可以不用新建web工程,普通的java工程也可以完成本篇的的操作。至于为什么要导入处json包以外的其他6个包,我会把note.txt贴在最后,各位一看便知。

question1:后台接受到前台的json格式的字符串怎么处理?

1 public static void jsonToJAVA() {
2 System.out.println("json字符串转java代码");
3 String jsonStr = "{\"password\":\"123456\",\"username\":\"张三\"}";
4 JSONObject jsonObj = JSONObject.fromString(jsonStr);
5 String username = jsonObj.getString("username");
6 String password = jsonObj.optString("password");
7 System.out.println("json--->java\n username=" + username
8 + "\t password=" + password);
9 }

question2:后台是怎么拼装json格式的字符串?



1 public static void javaToJSON() {
2 System.out.println("java代码封装为json字符串");
3 JSONObject jsonObj = new JSONObject();
4 jsonObj.put("username", "张三");
5 jsonObj.put("password", "123456");
6 System.out.println("java--->json \n" + jsonObj.toString());
7 }

question3:json格式的字符串怎么转换为xml格式的字符串?

1 public static void jsonToXML() {
2 System.out.println("json字符串转xml字符串");
3 String jsonStr = "{\"password\":\"123456\",\"username\":\"张三\"}";
4 JSONObject json = JSONObject.fromString(jsonStr);
5 XMLSerializer xmlSerializer = new XMLSerializer();
6 xmlSerializer.setRootName("user_info");
7 xmlSerializer.setTypeHintsEnabled(false);
8 String xml = xmlSerializer.write(json);
9 System.out.println("json--->xml \n" + xml);
10 }

question4:xml格式的字符串怎么转换为json格式的字符串?



1 public static void xmlToJSON(){
2 System.out.println("xml字符串转json字符串");
3 String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><user_info><password>123456</password><username>张三</username></user_info>";
4 JSON json=XMLSerializer.read(xml);
5 System.out.println("xml--->json \n"+json.toString());
6 }

question5:javabean怎么转换为json字符串?



1 public static void javaBeanToJSON() {
2 System.out.println("javabean转json字符串");
3 UserInfo userInfo = new UserInfo();
4 userInfo.setUsername("张三");
5 userInfo.setPassword("123456");
6 JSONObject json = JSONObject.fromBean(userInfo);
7 System.out.println("javabean--->json \n" + json.toString());
8 }

question6:javabean怎么转换为xml字符串?


 1 public static void javaBeanToXML() {
 2 System.out.println("javabean转xml字符串");
 3 UserInfo userInfo = new UserInfo();
 4 userInfo.setUsername("张三");
 5 userInfo.setPassword("123456");
 6 JSONObject json = JSONObject.fromBean(userInfo);
 7 XMLSerializer xmlSerializer = new XMLSerializer();
 8 String xml = xmlSerializer.write(json, "UTF-8");
 9 System.out.println("javabean--->xml \n" + xml);
10 }

1 package json;
 2 
 3 import net.sf.json.JSON;
 4 import net.sf.json.JSONObject;
 5 import net.sf.json.xml.XMLSerializer;
 6 
 7 public class JSONObject_1_3 {
 8 public static void javaToJSON() {
 9 System.out.println("java代码封装为json字符串");
10 JSONObject jsonObj = new JSONObject();
11 jsonObj.put("username", "张三");
12 jsonObj.put("password", "123456");
13 System.out.println("java--->json \n" + jsonObj.toString());
14 }
15 
16 public static void jsonToJAVA() {
17 System.out.println("json字符串转java代码");
18 String jsonStr = "{\"password\":\"123456\",\"username\":\"张三\"}";
19 JSONObject jsonObj = JSONObject.fromString(jsonStr);
20 String username = jsonObj.getString("username");
21 String password = jsonObj.optString("password");
22 System.out.println("json--->java\n username=" + username
23 + "\t password=" + password);
24 }
25 
26 public static void jsonToXML() {
27 System.out.println("json字符串转xml字符串");
28 String jsonStr = "{\"password\":\"123456\",\"username\":\"张三\"}";
29 JSONObject json = JSONObject.fromString(jsonStr);
30 XMLSerializer xmlSerializer = new XMLSerializer();
31 xmlSerializer.setRootName("user_info");
32 xmlSerializer.setTypeHintsEnabled(false);
33 String xml = xmlSerializer.write(json);
34 System.out.println("json--->xml \n" + xml);
35 }
36 
37 public static void javaBeanToJSON() {
38 System.out.println("javabean转json字符串");
39 UserInfo userInfo = new UserInfo();
40 userInfo.setUsername("张三");
41 userInfo.setPassword("123456");
42 JSONObject json = JSONObject.fromBean(userInfo);
43 System.out.println("javabean--->json \n" + json.toString());
44 }
45 
46 public static void javaBeanToXML() {
47 System.out.println("javabean转xml字符串");
48 UserInfo userInfo = new UserInfo();
49 userInfo.setUsername("张三");
50 userInfo.setPassword("123456");
51 JSONObject json = JSONObject.fromBean(userInfo);
52 XMLSerializer xmlSerializer = new XMLSerializer();
53 String xml = xmlSerializer.write(json, "UTF-8");
54 System.out.println("javabean--->xml \n" + xml);
55 }
56 
57 public static void xmlToJSON(){
58 System.out.println("xml字符串转json字符串");
59 String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><user_info><password>123456</password><username>张三</username></user_info>";
60 JSON json=XMLSerializer.read(xml);
61 System.out.println("xml--->json \n"+json.toString());
62 }
63 
64 public static void main(String args[]) {
65 // javaToJSON();
66 // jsonToJAVA();
67 // jsonToXML();
68 // javaBeanToJSON();
69 // javaBeanToXML();
70 xmlToJSON();
71 }
72 }

完整的UserInfo.java代码如下: UserInfo


 1 package json;
 2 
 3 public class UserInfo {
 4 public String username;
 5 public String password;
 6 public String getUsername() {
 7 return username;
 8 }
 9 public void setUsername(String username) {
10 this.username = username;
11 }
12 public String getPassword() {
13 return password;
14 }
15 public void setPassword(String password) {
16 this.password = password;
17 }
18 
19 }

result

存在的问题:

1.使用XMLSerializer的write方法生成的xml字符串的中文乱码问题

2.question4中的红色的log日志问题

转载于:https://my.oschina.net/cys21/blog/495977

FastJsonJSONObject的全面用法与常用方法详解 阅读详情

相关推荐

避坑指南:PVE下N卡直通错误代码43的终极解决思路与dmesg日志分析

本文详细解析了PVE环境下NVIDIA显卡直通时遇到的错误代码43问题,提供了从dmesg日志分析到BIOS配置、PVE宿主机优化及虚拟机设置的完整解决方案。特别针对GTX1060等显卡,分享了驱动版本选择、ROM修补及高级排错技巧,帮助用户彻底解决这一常见难题。

weixin_28693683的博客 257

JSONObject详解

1、JSONObject只是一种数据结构,可以理解为JSON格式的数据结构(key-value 结构),可以使用put方法json对象添加元素。JSONObject可以很方便的转换成字符串,也可以很方便的把其他对象转换成JSONObject对象。2、JSONJavaScript Object Notation的首字母缩写)是一种轻量级数据交换格式,最常用于客户端 - 服务器通信。它既易于读/写,又与语言无关。JSON值可以是另一个JSON 对象,数组,数字,字符串,布尔值(true / false)

qq_48607414的博客 5万+

鸿蒙开发之gson解析

作为老牌的Java程序员,几乎每个项目都逃不掉fastjson/gson等三方库。那么在OpenHarmony/HarmonyOS应用开发中,做数据解析时能不能使用fastjson/gson三方库呢?于是我搜索了一下,其实在arkts开发过程中也是可以使用JS里自带的JSONparse和JSONstringify方法来实现JSON和对象转换的。并且在早期的版本中还提供了一个开源的三方库。有人做过验证ohos_gson与JSON的转换的时间评测,结果是ohos_gson花费的时间是JSON的20倍以上。

xiangzhihong8的专栏 1592

JSONArray用法(三)

JSONArray 添加 JSONObject 1 语法: JSONArray.add(JSONObject ); 2 格式: [{ "key": "value", "key": "value" }] 举例: JSONArray array = new JSONArray(); //从数据库获取packageOrderList List<packageOrderDto&g

xinyuezitang的博客 1万+

jsonobject java_JSONObject使用方法

转载:http://blog.csdn.net/dongzhouzhou/article/details/86645691.JSONObject介绍JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包。2.下载jar包提供了除JSONObject的jar之外依赖的其他6个jar包,一共7个jar文件说明:因为工作中项...

weixin_29190573的博客 5482

JSON, JSONObject, JsonObject

JSON

zhaotaozi77的博客 1万+

Map<String,Object>转为JSONObjectJSONObject 转为JsonObjectJsonObject转为JsonElement

package com.tianjian.property.jieshuns.service; import java.util.Map; import java.util.Properties; import org.apache.http.HttpStatus; import org.apache.http.client.methods.CloseableHttpRes

飞火龙在天的博客 1万+

JSONObjectJSONArray的使用 jsonobject里面包含jsonarray

好多人用的是json-lib,要用那么多库很麻烦啊,直接eclipse里面用android自带的json就好。 很简单下面我贴下代码 import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; 看这个是自带的json JSONObject param =

chenaini119的专栏 5110

JSONObject 使用方法详解

JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包,本文给大家介绍jsonobject使用方法相关知识,感兴趣的朋友一起学习吧 1.JSONObject介绍 JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包。 2.下载j

流年、你奈我何 6万+

JAVAJSONObject方法,javaJSONObjectJSONArray的使用方法

public static void main(String[] args) {// 创建一个JSONObject对象JSONObject jsonObject1 = new JSONObject();// Map 与 JSONObject 相互转换Map map1 = new HashMap();map1.put("we", "dsds");JSONObject jsonObject2 = JS...

weixin_35802555的博客 1478

JSONObject

JSONObject JSONObject 介绍 // JSONObject 是一个类 JSONObject jsonObject = new JSONObject(); // JSONObject 只是一种数据结构,可以理解为JSON格式的数据结构(key-value 结构),可以使用put方法json对象添加元素。 // JSONObject可以很方便的转换成字符串,也可以很方便的把其他对象转换成JSONObject对象。 JSONObject-lib包是一个beans(类),co

weixin_44436598的博客 5049

JSONObject使用

直接构建即直接实例化一个 JSONObject 对象,而后调用其 put() 方法,将数据写入。数组的解析稍微麻烦一点,需要通过 JSONObject 对象的 getJSONArray(key) 方法获取到一个 JSONArray 对象,再调用 JSONArray 对象的 get(i) 方法获取数组元素,i 为索引值。基本类型的解析直接调用 JSONObject 对象的 getXxx(key) 方法,如果获取字符串则 getString(key),布尔值则 getBoolean(key),以此类推。

chuyouyinghe的专栏 6177

JSONObject源码解析

JSONJavaScript Object Notation的首字母缩写)是一种轻量级数据交换格式,最常用于客户端 - 服务器通信。它既易于读/写,又与语言无关。JSON值可以是另一个JSON 对象,数组,数字,字符串,布尔值(true / false)或null。也是后端开发中经常要接触的一个一个类,将要数据封装成json然后传递给前端。 只要我们导入如下maven依赖即可使用由阿里巴巴发布的...

6875

JSONObject - 用最通俗的讲解,教你玩转 JSON 数据的解析和修改

在还没有接触过这个东西的时候,一直是通过 ObjectMapper 进行 JSON 的序列化和反序列化,尤其是将 JSON 数据进行解析还需要提供一个具体的类... 就算不提供具体的类,使用 JsonNode 读取数据,涉及到修改还要强转 ObjectNode 就很麻烦~而且如果要构造一个 JSON 格式的数据,可能最先想到的就是通过 HashMap ,但是一但要构造的 JSON 数据稍微复杂一点,就要嵌套不少,代码的简洁、可读性大大降低.. 如果 key 存在就覆盖,key 不存在就添加.

CYK_byte的博客 1万+

JsonArray用法讲解

这个示例中,首先使用JsonParser将Json字符串解析为JsonArray。然后再使用get方法获取JsonObject中的数据,最终输出解析结果。JsonElement是Json中的基本数据类型,可以是JsonArray、JsonObjectJsonPrimitive或JsonNull。JsonArray是Json中的一个数据类型,本文将讲解JsonArray的用法。这将获取jsonArray中下标为1的JsonElement,即"orange"。这将输出JsonArray中的所有元素。

listeningdu的博客 1万+

JSONObject简介

本节摘要:之前对JSON做了一次简单的介绍,并把JSON和XML做了一个简单的比较;那么,我就在想,如果是一个json格式的字符串传到后台,需要怎么对其处理?如果前台页面需要后台返回的是一个json的字符串,那么后台是怎么把json格式的字符串给拼装起来的呢?JSON和XML是不是有某种联系,他们之间是不是可以互相转换?……带着这些问题,搜索了相关的资料,并自己实际动手操作,总算对这些问题有了个比...

weixin_30905133的博客 6329

JavaJSONArray详解

JSONArray是一种有序的元素集合,可以包含任意类型的数据,如字符串、数字、布尔值、null、数组或另一个JSON对象。JSONArray在JavaScript和Java等编程语言中都有广泛应用。在JavaScript中,JSONArray是一组数组元素,可以是任何类型的数据,如字符串、数字、布尔值、null、数组或对象。数组元素可以通过索引访问,也可以使用push和pop方法添加或删除元素。在Java中,JSONArray是一个类,用于表示JSON数组。

小賀のBlog 1万+

JSONJSONObjectJSONArray简介

JSON:就是一种轻量级的数据交换格式,被广泛应用于WEB应用程序开发。JSON的简洁和清晰的层次结构,易于阅读和编写;同时也易于机器解析和生成,有效的提升网络传输效率;支持多种语言,很多流行的语言都对JSON格式有着很友好的支持。JSON对象:就是多个属性被{}括起来的。JSON数组:就是包含了多个JSON对象的一个集合,数组是以数组括号[]括起来的。JSON数组并不一定是要相同的JSON对象的集合,也可以是不同的对象。JSONJSON对象、JSON数组的区别JSON是一种数据结构,类型xml。

熙熙小学姐 8523

华为OD机试 新系统 双机位C卷 真题题库目录|机考题库 + 算法考点详解

本文整理华为OD机试(机考) 新系统真题题库,提供高频考点精析与详细题目内容,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解 和 在线OJ做题练习。华为OD机试新系统真题题库。

qq_45776114的博客 10万+

三菱plc实例程序33个,FX1S小程序、FX2N 33个程序、CRC运算、交通灯程序、电梯程序、数控定位程序、温控模块编程等等

FX1S小程序.rarFX2N 33个程序.rarFx2n 485通讯源程序.rarFX2N communicating to 4 Mitsu Drives A500 and E500 series.zipFX2N CRC运算.rarFX2N CRC運算.rarFX2N PLC交通灯程序.rarFX2N PLC电梯程序 电梯PLC程序(带注释).zipFX2N PLC电梯程序.rarFX2N PLC电梯程序2.rarfx2n 与 vfd-b通讯.rarFX2N+1PG在机床中的应用实例.rarFX2N+1PG在机床中的应用实例(包括整套图纸程序).rarFX2N+20GM(控制要求分析+IO分配+PLC程序+20GM程序+详细注释).rarfx2n-10gm数控定位程序.rarFX2N-10PG程序范例(有注解).rarFX2N-1HC程序样例.rarFX2N-2AD模拟量程序示例.rarfx2n-485bd与6台vfd-b的rtu通讯程序.rarFX2N-4AD-PT程序样例.rarfx2n-4ad-tc温控模块编程示意.rarFX2N-

上一篇: web工程中URL地址的写法
下一篇: 匹配以指定字符开头元素:
chenshoumo1978
博客等级 码龄10年 0粉丝 0原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值