java中的json
josn:
一种数据传输格式,与开发语言无关,轻量级
一开始是javaScript的,但是后面比较流传,几乎所有语言都有相应的使用API
数据结构:
Object---对象
使用花括号{}包含的键值对结构
Key必须是String类型,value为任何基本类型或者数据结构(对象,或者数组)
Array---数组
使用中括号[]来起始,并用逗号,来分隔元素
基本类型:
string number true false null
例如:

{
"name" :"王小二",
"age": 22,
"birthday" : "1990-12-1", 注意:json里没有Date这种时间的类型,所以用string;需要了解一下时间戳
"school" : "蓝翔",
"major": ["理发","挖掘机"],
"has_girlfriend":false,
"car": null,
"house": null,
"commont": "这是一个注释"
}
注意:
json中没有注释的写法,但是我们可以曲线救国


{
"id":"1",
"author":{
"id":"1506200043",
"name":"kylin",
"gender":1
},
"major":["理发","挖掘机"]
}

java对json有支持,在使用的时候需要引入以下包:
commons-beanutils.xxx.jar
commons-collections.xxx.jar
commons-lang.xxx.jar
commons-logging.jar
json-lib.xxx.jar
ezmorph.xxx.jar
JSON字符串的常用生成方式:----------从后端发送给前端的数据
1.使用map来放key-value数据,然后转换成json对象--再转换成json字符串---再发送给前端

//map(javaObject)--->jsonObject---->jsonStr ----前端
import net.sf.json.JSONObject;
public void jsonStrByMap(){ //构建map对象,并且把需要发送给前端的东西添加进入
Map<String,String> params=new HashMap<>();
params.put("status","200");
params.put("username","kylin");
params.put("password","123456");
params.put("sexy","male");
params.put("userID","15062"); //java对象变成json对象
JSONObject jsonObject=JSONObject.fromObject(params); //json对象转换成json字符串
String jsonStr=jsonObject.toString(); System.out.println(jsonStr);
}

2.使用javabean来构建json

User.java
public class User {
private String username;
private String password; public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} }
//javabean---json对象---json字符串---->前端
public void jsonStrByJavaBean(){ //创建一个User对象
User user=new User();
user.setUsername("kylin");
user.setPassword("123456"); //java对象转换成json对象
JSONObject jsonObject=JSONObject.fromObject(user); //json对象转换成json字符串
String jsonStr=jsonObject.toString();
System.out.println(jsonStr);
}

从前端获取的数据------>转换成后端可以用的数据
json字符串转换成java对象

//前端传递过来的是json字符串,那么我们对这个字符串需要进行获取并且处理
//json字符串-----json对象------java对象
JSONObject jsonobject = JSONObject.fromObject(jsonStr);
User user=(User)JSONObject.toBean(jsonobject,User.class);
//然后就通过user对象来操作了
String username=user.getUsername();
String password=user.getPassword();

json字符串转换成map对象

JSONObject jsonobject = JSONObject.fromObject(jsonStr);
Map params=(Map) jsonObject;
//然后就可以通过map来操作了
//判断是否有username字段和username字段
if (params.containsKey("username")){
System.out.println(params.get("username"));
}
if (params.containsKey("password")){
System.out.println(params.get("password"));
}

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库到底有什么不同,但事实上 ...
- 3、示例(在java中使用JSON)
教程链接(json-smple1.1.1.jar文件) 链接:http://pan.baidu.com/s/1qXPbYHm 密码:v0f0 如何使用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的使用方法
json在数据传输起了很大的作用,下面说说java中json的使用方法. 文章参考:http://www.codes51.com/article/detail_99574.html json串示例 [ ...
- Java中的Json序列化,不容忽视的getter
在开发的过程中,经常会碰到和自己预期不一样的情况.有的时候自己去研究一下还是很有趣的.这两天在写java web的时候,碰到了一个对象序列化的问题. 问题重现 public class AjaxJso ...
- 使用Jackson在Java中处理JSON
在工作中实际使用到Java处理JSON的情况,且有很大部分都使用的是开源工具Jackson实现的. 一.入门 Jackson中有个ObjectMapper类很是实用,用于Java对象与JSON的互换. ...
随机推荐
- Oracle [sys_connect_by_path] 函数
create table test ( NO NUMBER, VALUE VARCHAR2(100), NAME VARCHAR2(100) ); -------------------------- ...
- Win10 build package error collections
1. 打包Released的时候出现问题意思是说 本地项目,类里有这个Visibility属性不能进行序列化 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 error CS0029: 无法将 ...
- UNP学习笔记4——I/O复用:select和poll函数
1 概述 之间的学习中发现,传统的阻塞式系统调用不仅浪费进程运行时间,而且会带来狠毒问题.因此进程需要有一种预先告知内核的能力,使得内核一旦发现进程指定的一个或者多个I/O条件就绪,它就通知进程.这个 ...
- 搭建svn服务器(ubuntu)
ubuntu搭建svn服务器 环境:ubuntu 12.04.5 apt-get install subversion 找个目录作为svn的仓库 mkdir svn svnadmin create s ...
- node——underscore的使用
我在做新闻页面时,需要将之前存好点的data.json里的数据显示在首页上,而首页的每条新闻数据不能直接写定在上面,所以我们要将data里面的数据传递进去.我们需要使用underscore的templ ...
- shell脚本切割tomcat日志文件
转自:http://www.cnblogs.com/lishun1005/p/6054816.html 鉴于在调试logback和log4j的文件切割一直无法成功,随性用shell写个脚本用来切割to ...
- 正式版的Linux Kernel 5.1来了,非LTS
大神Linus Torvalds于今天发布了Linux Kernel 5.1内核正式版,在对现有功能进行改进的同时还带来了很多重要的改进.本次版本更新历时一个半月,不过值得注意的是它并非是长期支持版本 ...
- 获取ip,判断用户所在城市
PHP获取IP地址 这个比较简单了,利用PHP自带函数就可以了,PHP中文手册看一下,都有现成的例子,就不过多说明了,直接上代码,A段: <? //PHP获取当前用户IP地址方法 $xp_Use ...
- angular-表格
ng-repeat 指令可以完美的显示表格. <div ng-app="myApp" ng-controller="customersCtrl"> ...
- 洛谷—— P3388 【模板】割点(割顶)
https://www.luogu.org/problem/show?pid=3388 题目背景 割点 题目描述 给出一个n个点,m条边的无向图,求图的割点. 输入输出格式 输入格式: 第一行输入n, ...