3、示例(在java中使用JSON)
- 教程链接(json-smple1.1.1.jar文件)
- 链接:http://pan.baidu.com/s/1qXPbYHm 密码:v0f0
- 如何使用java编程语言编码和解码JSON
- 首先准备环境以便针对JSON进行java编程
- 下载jsonsimple-1.1.1.jar文件
- 把jar文件的路径添加到classpath环境变量当中
- JSON和java实体的映射
- JSON.simple实体映射从左侧到右侧为解码或者解析,实体映射从右侧到左侧为编码

- 解码时,
- java.util.List的默认具体类是org.simple.JSONArray,
- java.util.Map的默认具体类是org.simple.JSONObject
- 在java中编码JSON
- 使用java.util.HashMap的子类JSONObject编码一个JSON对象,这里并没有提供顺序
- 如果需要严格的元素顺序,可以使用JSONValue.toJSONString(map)方法的有序映射实现,比如java.util.LinkedHashMap.
- 运行上面的程序,将会出现下面的结果
- 下面是另外一个例子,使用java JSONObject展示了JSON对象流
- 运行上面的程序,将会显示下面的结果
- 在java程序当中解码JSON
- 例子当中使用了JSONObject和JSONArray,其中,
- JSONObejct就是java.util.Map
- JSONArray就是java.util.List
- 因此,我们可以使用Map或者是List的标准操作来操作来访问他们
- 运行上面的程序,显示结果如下
package jlu.yangzs.json;
import org.json.simple.JSONObject;
class JsonEncodeDemo
{
public static void main(String[] args)
{
JSONObject obj = new JSONObject();
obj.put("name", "foo");
obj.put("num", new Integer(100));
obj.put("balance", new Double(1000.21));
obj.put("is_vip", new Boolean(true));
System.out.print(obj);
}
}
{"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"}
package jlu.yangzs.json;
import java.io.IOException;
import java.io.StringWriter;
import org.json.simple.JSONObject;
public class JsonTest {
public static void main(String[] args) throws IOException {
JSONObject jsonObejct=new JSONObject();
jsonObejct.put("name", "foo");
jsonObejct.put("num",new Integer(100));
jsonObejct.put("balance", new Double(100.21));
jsonObejct.put("is_vip", new Boolean(true));
//下面两句代码比较关键
StringWriter out=new StringWriter();
jsonObejct.writeJSONString(out);
String jsonText=out.toString();
System.out.println(jsonText);
}
}
{"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"}
package jlu.yangzs.jsondecode;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class JsonDecodeDemo {
public static void main(String[] args) {
JSONParser parser=new JSONParser();
String s="[0,{\"1\":{\"2\":{\"3\":{\"4\":[5,{\"6\":7}]}}}}]";
try {
Object obj=parser.parse(s);
JSONArray jsonArray=(JSONArray)obj;
System.out.println("the 2nd element of array:");
System.out.println(jsonArray.get(1));
System.out.println();
JSONObject jsonObj=(JSONObject)jsonArray.get(1);
System.out.println("Field \"1\"");
System.out.println(jsonObj.get(1));
s="{}";
obj=parser.parse(s);
System.out.println(obj);
s="[5]";
obj=parser.parse(s);
System.out.println(obj);
s="[5,2]";
obj=parser.parse(s);
System.out.println(obj);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
the 2nd element of array:
{"1":{"2":{"3":{"4":[5,{"6":7}]}}}}
Field "1"
null
{}
[5]
[5,2]
3、示例(在java中使用JSON)的更多相关文章
- JAVA中使用JSON进行数据传递
最近在做一个基于JAVA Servlet的WEB应用以及对应的Anroid应用客户端的开发工作. 其中,在接口的访问和数据的传输方面使用的比较多的是使用JSON对象来操作格式化数据:在服务器端采用JS ...
- 转载:JAVA中使用JSON进行数据传递
转载网址:http://www.cnblogs.com/undead/archive/2012/07/18/2594900.html 最近在做一个基于JAVA Servlet的WEB应用以及对应的An ...
- JSON(三)——java中对于JSON格式数据的解析之json-lib与jackson
java中对于JSON格式数据的操作,主要是json格式字符串与JavaBean之间的相互转换.java中能够解析JSON格式数据的框架有很多,比如json-lib,jackson,阿里巴巴的fast ...
- Java中哪个JSON库的解析速度是最快的?
JSON已经成为当前服务器与WEB应用之间数据传输的公认标准,不过正如许多我们所习以为常的事情一样,你会觉得这是理所当然的便不再深入思考 了.我们很少会去想用到的这些JSON库到底有什么不同,但事实上 ...
- java 中关于json的使用方法
json在数据传输起了很大的作用,下面说说java中json的使用方法. 文章参考:http://www.codes51.com/article/detail_99574.html json串示例 [ ...
- 使用Jackson在Java中处理JSON
在工作中实际使用到Java处理JSON的情况,且有很大部分都使用的是开源工具Jackson实现的. 一.入门 Jackson中有个ObjectMapper类很是实用,用于Java对象与JSON的互换. ...
- JAVA中,JSON MAP LIST的相互转换
1 JSON包含对象和数组,对应于JAVA中的JSONObject,JSONArray 2 String 转JSON对象 JSONObject.fromObject("String" ...
- java中对于JSON 的处理 fastjson gson 系统自带的JSON 的选择
从2月初到8月末,经历了一段痛苦的经历,现在总算感觉已经走出来了,经历那事之后 感觉对人与人之间的感情看的更透了,人也没那么浮躁了: 说实话 以前从来不知道鸟叫有多好听,现在突然觉的大自然真的很美,放 ...
- Java中的Json序列化,不容忽视的getter
在开发的过程中,经常会碰到和自己预期不一样的情况.有的时候自己去研究一下还是很有趣的.这两天在写java web的时候,碰到了一个对象序列化的问题. 问题重现 public class AjaxJso ...
随机推荐
- iOS13禁用深色模式
全局禁用深色模式(暗黑模式)在Info.plist中增加UIUserInterfaceStyle,值为Light,如下 <key>UIUserInterfaceStyle</key& ...
- Pytest学习6-跳过或xfail失败的用例
Skip跳过用例 跳过(Skip)指,你希望如果某些条件得到满足你的测试用例才执行,否则Pytest应该完全跳过运行该用例 1. 跳过测试用例的最简单方法是使用skip装饰器标记它,可以传递一个可选的 ...
- python之路之css
方式三 方式四 <style type="text/css"> a:link{ color: red; } a:visited { color: blue; } a:h ...
- Linux find命令:在目录中查找文件(超详解)
find 是 Linux 中强大的搜索命令,不仅可以按照文件名搜索文件,还可以按照权限.大小.时间.inode 号等来搜索文件.但是 find 命令是直接在硬盘中进行搜索的,如果指定的搜索范围过大,f ...
- DVWA全级别之File Upload(文件上传)
File Upload File Upload,即文件上传漏洞,通常是由于对上传文件的类型.内容没有进行严格的过滤.检查,使得攻击者可以通过上传木马获取服务器的webshell权限,因此文件上传漏洞带 ...
- 1.什么是springboot
什么是spring? Spring是一个开源框架,2003 年兴起的一个轻量级的Java 开发框架,作者:Rod Johnson . Spring是为了解决企业级应用开发的复杂性而创建的,简化开发. ...
- BZOJ1034[ZJOI2008]泡泡堂
一开始是不会的,不知道如何处理相等的情况,瞎贪心一直WA. 于是就递归处理是让相等的平局还是输掉,如下,拿到了50分. int solve(int *a,int *b,int i,int l,int ...
- Go_sqlx和占位符
sqlx使用 第三方库sqlx能够简化操作,提高开发效率. 安装 go get github.com/jmoiron/sqlx package main import ( "fmt" ...
- XML学习笔记1
一.XML与HTML的差异 XML 不是 HTML 的替代:XML 和 HTML 为不同的目的而设计: XML 被设计用来传输和存储数据,其焦点是数据的内容: HTML 被设计用来显示数据,其焦点是数 ...
- MaxM2引擎各种人物触发脚本
捡起物品触发@PickUpItem[@PickUpItem]#if#actSENDMSG 5 [%s]在[%m(%x,%y)]捡起物品[<$STR(E2)>] 精炼成功触发@REFINEM ...