java中json的理解,简单了解一下什么是JSON

JOSN

什么是JOSN?

JSON(JavaScript Object Notation,JS 对象标记)是一种轻量级的数据交换格式,目前使用特别广泛。

采用完全独立于编程语言的文本格式来存储和表示数据。

简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。

易于人阅读和编写,同时也易于机器解析和生成,并有效的提供网络传输效率。

JavaScript语言中,一切都是对象。因此,任何JavaScript支持的类型都可以通过JSON来表示,例如字符串、数字、对象、数组等。看看它要求的语法格式:

对象表示为键值对,数据由逗号分隔

花括号保存对象

方括号保存数组

JSON键值对是用来保存Javascript对象的一种方式,和JavaScript对象的写法也大同小异,键/值对组合中的键名写在前面并用双引号 "" 包裹,使用冒号 : 分隔,然后紧接着值:

{"name" : "Molu"}

{"age" : "18"}

{"sex" : "男"}

复制代码

很多人搞不清楚 JSON 和 JavaScript 对象的关系,甚至连谁是谁都不清楚。其实,可以这么理解:

JSON 是 JavaScript 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。

var obj = {a:'Hello', b: 'world'}; //这是一个对象,注意键名是可以使用引号包裹的

var json = '{"a" : "Hello", "b": "world"}'; // 这是一个 JSON 字符串,本质是 一个字符串

复制代码

JSON 和 JavaScript 对象互转

要实现从 JSON 字符串转换为 JavaScript 对象,使用 JSON.parse() 方法:

var obj = JSON.parse('{"a": "Hello", "b": "World"}')

// 结果是 {a: 'Hello', b: 'world'}

复制代码

要实现 JavaScript 对象转换为JSON字符串,使用 JSON.stringify() 方法 :

var json = JSON.stringify({a: 'Hello', b: 'World'})

// 结果是 '{"a": "Hello", "b": "World}'

复制代码

代码测试

Title

var user = {

name:"Moluu",

age:18,

sex:"男",

};

// 将Javascript对象转换为JSON对象

var json = JSON.stringify(user);

// 将JSON对象转换为JavaScript对象

var javaScript = JSON.parse(json);

console.log(javaScript);

console.log(json);

复制代码

打印结果如下,前面的是JavaScript对象,后者是JSON字符串。

bf4a8fc89697b47a8bd26f7b32fe342c.png

JackSon

如果要在我们的Java代码中把方法的返回值转换为纯JSON字符串,那么我们可以使用JackSon。使用 JavckSon 我们需要先做一些准备

导入Jackson的依赖

com.fasterxml.jackson.core

jackson-databind

2.11.0

复制代码

在Spring配置文件中解决Json乱码问题

复制代码

准备工作做好后我们来编写一个Controller类

@Controller

public class UserController{

@RequestMapping("/j1")

@ResponseBody // 这个注解可以让我们的类不走视图解析器,直接返回字符串

public String json1() throws JsonProcessingException{

ObjectMapper mapper = new ObjectMapper();

User user = new User("陌路","男",18);

return mapper.writeValueAsString(user);

}

复制代码

在方法上使用 @ResponseBody 注解,让json1方法的返回值不走视图解析器,直接返回Json字符串。

浏览器进行测试

651f7a24a43fdd65b73c5c27107912e7.png

没有任何问题

也可以在类上使用 @RestController 进而省略 @ResponseBody 注解和 @Controller注解 ,两种方法都可以使用(下面为代码示例)。

//@Controller

@RestController

public class UserController{

@RequestMapping("/j1")

// @ResponseBody // 这个注解可以让我们的类不走视图解析器,直接返回字符串

public String json1() throws JsonProcessingException{

ObjectMapper mapper = new ObjectMapper();

User user = new User("陌路","男",18);

return mapper.writeValueAsString(user);

}

复制代码

FastJson

fastjson.jar是阿里开发的一款专门用于Java开发的包,可以方便的实现Json对象与JavaBean对象的转换,实现JavaBean对象与Json字符串的转换,实现Json对象与Json字符串的转换。实现Json的转换方法很多,最后的实现结果都是一样的。

导入fastjsond 的 pom依赖

com.alibaba

fastjson

1.2.41

复制代码

FastJson相比JackSon显得更为人性化,也更加的便捷

以下是使用FastJson来进行Java对象转Josn字符串的代码示例和浏览器测试

@RestController

public class UserController{

@RequestMapping("/j2")

public String json5(){

User user = new User("陌路","男",18);

String string = JSON.toJSONString(user);

return string;

}

}

复制代码

没有任何问题,而且相比起Jackson更为的简单(偷懒)

b35d33e18125898fb4331dd7f003ab2b.png

需要注意的是,如果你导入FastJSon后进行测试报 500 错误,可以尝试在项目结构中进行解决。

143a9e6f05e6de25ca932614e37e6f53.png

这是IDEA的一个小毛病,碰到得多了就不会中招了~~~~

那么到这里JSON的了解以及一丢丢的扩展就结束了

7dc1bdc8274b74110552a1abb1b04bf9.png

画师id: JTY

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值