json格式处理

        Ajax写多了就经常会与json格式的数据打交道,在处理Ajax返回的数据时,有时候明明感觉什么都是正常的但最后并没有得到预期的结果,很多情况下都是由于数据的格式不正确导致的,所以在这里就在总结一下json格式数据的处理。
        有这样一种场景,在后端调用API接口的时候,接口返回的是json格式的数据,有时json某个元素的值还是json。
        当后端取到该返回值后,通过json_decode()对 JSON 格式的字符串进行解码,这里要特别注意了,我们先来看一下这几个函数的用法:

$arr = ['name' => 'jerry', 'age' => 22, 'gender' => 'male', 'hobby' => 'play'];
//将数组转换为json格式的  字符串
$en = json_encode($arr);
var_dump($en);
echo "\r\n";
//输出结果
string(56) "{"name":"jerry","age":22,"gender":"male","hobby":"play"}"

//将json格式的字符串转换为 对象
$de = json_decode($en);
var_dump($de);
echo "\r\n";
//输出结果
class stdClass#1 (4) {
  public $name =>
  string(5) "jerry"
  public $age =>
  int(22)
  public $gender =>
  string(4) "male"
  public $hobby =>
  string(4) "play"
}


//将json格式的字符串转换为 数组
$de_tr = json_decode($en, true);
var_dump($de_tr);
echo "\r\n";
//输出结果
array(4) {
  'name' =>
  string(5) "jerry"
  'age' =>
  int(22)
  'gender' =>
  string(4) "male"
  'hobby' =>
  string(4) "play"
}

        所以有时我们传入到前段的一部分数据的为对象,在前段就需要将其转换为json格式的字符串,或将json格式的字符串转换为json对象(具体视情况而定)。这是就需要在js里用到JSON.parse()JSON.string()这两个函数了。
还是以上面的json字符串举例子

JSON.parse()//将json格式的字符串解析为对象
JSON.parse('{"name":"jerry","age":22,"gender":"male","hobby":"play"}')
//输出结果
{name: "jerry", age: 22, gender: "male", hobby: "play"}
	age: 22
	gender: "male"
	hobby: "play"
	name: "jerry"

JSON.stringify()//将对象转换为json字符串
JSON.stringify({name: "jerry", age: 22, gender: "male", hobby: "play"});
//输出结果
"{"name":"jerry","age":22,"gender":"male","hobby":"play"}"

转换为字符串之后有时会因为一些引号问题,需要进行转义,所以就需要用到正则进行转移:

JSON.stringify(param).replace(/"/g, '"')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值