SpringMVC学习---JSON初体验

什么是JSON

JSON (JavaScript Object Notation) ,它其实就是数据的一种表示方式,其实就是字符串(高逼格说叫:文本格式),例如:

{
	"name" : "张三",
	"age" : 18,
	"sex" : "男",
	"book" : {
		"bname" : "好好学java",
		"price" : 25.6
	},
	"hobbies":[
		{
			"hobby" : "唱"
		},
		{
			"hobby" : "跳"
		},
		{
			"hobby" : "rap"
		},
		{
			"hobby" : "篮球"
		}
	]
}

JSON和JavaScript对象的关系

可以这么理解:
JSON是JavaScript的字符串表示,它使用文本表示JS的信息,本质上,JSON是一个字符串

var jsObj = {name : '张三', sex : '男'}; //这是javaScript对象
var json = '{"name" : "张三", "sex" : "男"}'; //这是json字符串

关于JSON与JavaScript的互相转化:
JSON->JavaScript(使用JavaScript内嵌的JSON.parse()方法)

	//方法的参数为json字符串,返回值是JavaScript对象
	jsObj = JSON.parse(json);

JavaScript->JSON(使用JavaScript内嵌的JSON.stringify()方法)

	//方法的参数为JavaScript对象,返回值为JSON字符串
	json = JSON.stringify(jsObj);

前端如何传递JSON给后端(前端->后端)

使用AJAX方法最为快捷:Ajax初体验

在SpringMVC中,如何让后端返回给前端JSON(后端->前端)

  1. 导入jackson的依赖
<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>2.10.0</version>
</dependency>
  1. 写一个Controller
    [注]:这里在@RequestMapping中设置了一个属性值:
    produces = “application/json;charset=utf-8”
    这样做是为了防止JSON解析时出现乱码问题。
@Controller
public class JSONController{
	@RequestMapping(value = "/j1",produces = "application/json;charset=utf-8")
	@Responsebody//它就不会走视图解析器,会直接返回一个字符串
	public String json1() throws JsonProcessingException{
		//Jackson ObjectMapper
		ObjectMapper mapper = new ObjectMapper();
		//创建一个对象(id,姓名,年龄)
		User user = new User(2010001,"张三",18);
		//将对象转换为JSON字符串
		String str = mapper.writeValueAsString(user):
		return str;
	}
}

其实,还有一种方法,来防止JSON出现乱码,即在SpringMVC配置文件中配置如下内容(这里用到了JackSon):

<!--解决json 乱码配置-->
<mvc:annotation-driven>
   <mvc:message-converters register-defaults="true">
      <bean class="org.springframework.http.converter.StringHttpMessageConverter">
         <constructor-arg value="UTF-8"/>
      </bean>
      <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
         <property name="objectMapper">
            <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
                 <property name="failOnEmptyBeans" value="false"/>
            </bean>
         </property>
      </bean>
  </mvc:message-converters>
</mvc:annotation-driven>

当给某一个类加上@RestController时,则代表该注解类下的所有方法都不经过视图解析器,只返回字符串

@RestController
public class StringController{
	//...
}

另外,还可以使用阿里巴巴开发的fastjson工具包…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值