json数据怎么加上转义字符

json数据怎么加上转义字符,第1张

首先你的转义范围要先确定吧?

一般都是对中文、符号进行转义;

中文一般都是转成unicode;

如果数要转换成程序(JAVA)中直接使用的json字符串的话,一般都是在双引号前加\.

推荐给你一个json在线转义工具 网页链接 可以去看下。

一:解析普通json

1:不带转化字符

格式{"type":"ONLINE_SHIPS","message":{"currentTime":1400077615368,"direction":0,"id":1,"latitude":29.5506,"longitude":106.6466}}

JSONObject jsonObject = new JSONObject(jsonstr).getJSONObject("message")

System.out.println("currentTime:"+jsonObject.get("currentTime"))

System.out.println("direction:"+jsonObject.get("direction"))

System.out.println("latitude:"+jsonObject.get("latitude"))

System.out.println("longitude:"+jsonObject.get("longitude"))

jsonarray

JSONObject jo = ja.getJSONArray("cargoList").getJSONObject(0)

2:带转义字符的json格式

{"type":"ONLINE_SHIPS","message":"{\"currentTime\":1400077615368,\"direction\":0,\"id\":1,\"latitude\":29.5506,\"longitude\":106.6466}"}

其实也很简单,先把它转化成字符串就可以了

JSONObject jsonObject = new JSONObject(jsonstr)

//先通过字符串的方式得到,转义字符自然会被转化掉

String jsonstrtemp = jsonObject.getString("message")

System.out.println("message:"+jsonstrtemp)

jsonObject = new JSONObject(jsonstrtemp)

System.out.println("currentTime:"+jsonObject.get("currentTime"))

System.out.println("direction:"+jsonObject.get("direction"))

System.out.println("latitude:"+jsonObject.get("latitude"))

System.out.println("longitude:"+jsonObject.get("longitude"))

二:遍历Json对象

JSONObject ports = ja.getJSONObject("ports")

Iterator<String>keys = ports.keys()

while(keys.hasNext()){

String key=keys.next()

String value = ports.getString(key)

}

三:使用Gjson,json与对象相互转化

使用Gson轻松将java对象转化为json格式

String json = gson.toJson(Object)//得到json形式的字符串

User user = gson.fromJson(json,User.class)//得到对象

转化成list

import java.util.List

import com.google.gson.Gson

import com.google.gson.reflect.TypeToken

import com.lc.function.Action

import com.lc.models.Groups

public class MapSearch {

private void ParseData(String _data)

{

Gson gson = new Gson()

List<Groups>ps = gson.fromJson(_data, new TypeToken<List<Groups>>(){}.getType())

System.out.println(ps.get(0).getGroup_name())

}

}

通过AJAX传到PHP的json字符串有时候加上反斜杠”\”来转义,PHP处理时需要先去掉反斜杠,然后再json_decode.

$str = stripslashes($_POST['json'])

$arr = json_decode($str,true)

PS:php get抓取json怎样去除双引号前面的反斜杠

你这个不算标准的JSON格式数据,可以先将\"替换成"即可。

再用json_decode()系统函数将其转为json对象,如需转为数组加上第二个参数为true即可。

若仍输出为NULL,是由于存在BOM头信息,

复制代码 代码如下:

$arr = json_decode(trim($json,chr(239).chr(187).chr(191)),true)

转换即可。

本文全部内容介绍完了,希望对大家在使用PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠中有所帮助。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11743804.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存