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")); }

 

 

小结:

    json是一种前后端的通信规范,上面介绍的是JSON(android SDK中的官方库);一般在移动客户端的时候使用,后续将会介绍GSON(谷歌的一个开源库),一般用于服务端后台的开发中,功能相对强大.

  

JSON库的总结:
  功能:映射java对象和json字符串

  1.通过Annotation注解来声明
  2.支持自定义属性名称  
  3.支持包含或排除属性
  4.支持自定义借口自己完成解析/生成过程

流程:
  后端使用java编写json,
  前端使用javascript直接对json字符串进行解析
  android客户端使用json类来解析

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM