安卓开发替换json字符串中的数据_JAVA处理JSON数据的实现与注意事项

JSON简介

JSON(Javascript Object Notation,JS对象简谱)是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

JSON格式

01

JSON实际上类似于键值对。以大括号"{“开始并以大括号”}"结束,结构如下:

0704d720ee0073849a7bea7744660fc6.png

02

概念

json字符串:指的是符合json格式的字符串。比如:var jsonStr='{"name":"stu","sno":101,"grade":80}'

json对象:指的是js对象的字符串表示
var jsonObj={"name":"stu","sno":101,"grade":80}

json对象可以直观的表现js对象的结构,但是客户端向服务器发起一些(例如http)请求时,一般会以json字符串的形式发送到客户端。

js中,json对象和json字符串之间的转换也比较简单,通常使用JSON.parse()把json字符转换为json对象。而使用JSON.stringify()把json对象转换为json字符串(js发送ajax请求传送对象时通常会采用这个方法)。

JAVA对JSON的处理

以springboot为例演示代码。

277ba2077b943d4fc2487ea6c1fdb483.gif

对于json数据的处理在java开发的后台中是非常常见的,因此也有不少的第三方库使开发者能够快捷处理json数据。这里采用了阿里的fastjson对json数据进行处理。在最近的项目中需用到科大讯飞的接口实现语音听写功能,但是返回的处理数据是json,还要转换为数据库可接受的类型才能进行数据库的查询。

277ba2077b943d4fc2487ea6c1fdb483.gif

01

科大讯飞接口返回的数据

0d8111f19350114b9911a2fc90269f24.png

02

使用java对json数据处理,并把分词拼接为字符串

5a6f16b6f7e66273c724c6caf193370c.png

首先jsonStr是科大讯飞语音识别后得到的json数据,调用 parseObject(String str)把数据转换为JSON对象。由于返回的JSON对象当中有的键值对值为数组(表示分词结果的数组对象)我们需要调用getJSONArray(JSONObject jsonObject)得到这个JSON格式的数组。之后循环遍历得到每个中文分词结果,在采用同样的操作,得到“w”(分词)的值。最后定义stringbuffer拼接每个分词。

springMVC与JSON有关的几个注解

@RequestBody

注解用于读取http请求的内容(字符串),通过springmvc提供了可用的接口lHttpMessageConverter接口将读到的内容(json数据)转换为java对象并绑定到Controller方法的参数上。

01

public Map<String,Object> addFavorite(@PathVariable Integer userId, @RequestBody List<Integer> typeList){

这个代码表示了发送的list是json格式的。格式:[0,1,2] (传了一个元素为0,1,2的list)。

02

@ResponseBody

@ResponseBody
用于将Controller的方法返回的对象,通过springmvc提供的HttpMessageConverter接口转换为指定格式的数据如:json,xml等,通过Response响应给客户端。一般来说,如果在类加上了@RestController注解可以不在方法上加上@RepsonseBody注解。

springMVC返回JSON

@GetMapping(value = "/fuzz",produces = "application/json;charset=UTF-8")

produces指定返回的数据MIME类型为application/json类型的数据。

想看更多精彩内容

请关注我们的实验室公众号哟

2ed901519affdaac62636767a914ee4f.png

扫码关注啦!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值