phpjson
㈠ php 处理json字符串的问题
$json='{"a":1,"b":2,"c":3,"d":4,"e":5}';
//已数组形式返回
$a=json_decode($json,TRUE);
//为对应键值的变量赋值
foreach($aas$k=>$v){
eval('$'.$k.'='.$v.';');
}
//实测有效
echo$a;
echo'<p>';
echo$b;
echo'<p>';
echo$c;
echo'<p>';
echo$d;
echo'<p>';
echo$e;
echo'<p>';
上面的方法也是正确的,怎么取舍看你的程序需求
㈡ php 解析不了json
json_decode( ) 可以实现对 JSON 格式的字符串进行编码
你的Json字符串有问题
<?php
$keys='{"result":0,"events":[{"event":6}]}';
$string=json_decode($keys,true);
mp($string);?>
结果:
array(2){
["result"]=>int(0)
["events"]=>array(1){
[0]=>array(1){
["event"]=>int(6)
}
}
}
㈢ php怎么样在json文件中指定位置追加数据,在【】中存储,谢谢各位大佬
<?php
$jsonStr=file_get_contents("test.json");
$jsonStr=str_replace("vargoodsData=[","[",$jsonStr);
$jsonStr=str_replace("];","]",$jsonStr);
$jsonData=json_decode($jsonStr,true);
$data=array();
$data['a']='test';
$data['b']='12133';
array_push($jsonData,$data);
$json_string="vargoodsData=".json_encode($jsonData).";";
file_put_contents("test.json",$json_string);
?>
㈣ php获取json里面内容
$jsonString='....yourjson....';
$result=json_decode($jsonString,true);
$dataCount=count($result['data']);
if($dataCount>0){
for($i=0;$i<$dataCount;$i++){
//这里处理每一条物流状态
}
}
㈤ PHP json格式处理
可以用正则
$jsonStr='{"db":"[{"0":"9","id":"9"},{"0":"9","id":"9"},]"}';
$jsonStr=preg_replace('/['"]([.*?])['"]/iU','$1',$jsonStr);//去除json串中,数组外的引号,将形如"[{...}]"替换成[{...}]
$jsonStr=preg_replace('/,s*]/',']',$jsonStr);//去除json串中多余的逗号
字符串替换:
$jsonStr=str_replace('"[','[',$jsonStr);
$jsonStr=str_replace(',]"',']',$jsonStr);
㈥ php可以JSON输出json格式吗
php直接输出json格式,有一个误区,以为用echo json_encode($data);这样就是输出json数据了,没错这样输出文本是json格式文本而不是json数据,正确的写法是应该加一句:
<?php
header('Content-type:text/json');
//这句是重点,它告诉接收数据的对象此页面输出的是json数据;
$json={"name":"yovae","password":"12345"};
//虽然这行数据形式上是json格式,如果没有上面那句的话,它是不会被当做json格式的数据被处理的;
echo $json;
?>你看过后很简单吧以后不会可以向我一样经常到后盾人平台找找相关教材看看就会了,希望能帮到你,给个采纳吧谢谢( ̄(エ) ̄)
㈦ php如何解析这种JSON
目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它。
从5.2版本开始,PHP原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码。
一、json_encode()
该函数主要用来将数组和对象,转换为json格式。先看一个数组转换的例子:
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
结果为
{"a":1,"b":2,"c":3,"d":4,"e":5}
由于json只接受utf-8编码的字符,所以json_encode()的参数必须是utf-8编码,否则会得到空字符或者null。当中文使用GB2312编码,或者外文使用ISO-8859-1编码的时候,这一点要特别注意。
二、索引数组和关联数组
PHP支持两种数组,一种是只保存"值"(value)的索引数组(indexed array),另一种是保存"名值对"(name/value)的关联数组(associative array)。
由于javascript不支持关联数组,所以json_encode()只将索引数组(indexed array)转为数组格式,而将关联数组(associative array)转为对象格式。
比如,现在有一个索引数组
$arr = Array('one', 'two', 'three');
echo json_encode($arr);
结果为:
["one","two","three"]
三、类(class)的转换
下面是一个PHP的类: class Foo { const ERROR_CODE = '404'; public $public_ex = 'this is public'; private $private_ex = 'this is private!'; protected $protected_ex = 'this should be protected'; public function getErrorCode() { return self::ERROR_CODE; } }
现在,对这个类的实例进行json转换:
$foo = new Foo;
$foo_json = json_encode($foo);
echo $foo_json;
输出结果是
{"public_ex":"this is public"}
可以看到,除了公开变量(public),其他东西(常量、私有变量、方法等等)都遗失了。
㈧ php如何获取json中数据
可以用$obj=>key 的方式直接读取 也可以先转换为数组 用遍历数组的方法读取
<?php
$json='{"a":100,"b":200,"c":300,"d":400,"e":500}';
//首先将json字符串转换成关联数组
$arr=json_decode($json,true);
//然后循环读取数据
foreach($arras$item){
echo$item;
echo"<br/>";
}
?>
运行结果:
100
200
300
400
500
㈨ php转换成json数据格式
json和php数组 格式的互相转换,参考如下:
$php_json = json_encode($json_arr); //把php数组格式转换成 json 格式的数据
echo $php_json;
$php_json = json_decode($php_json); //再把json格式的数据转换成php数组
print_r($php_json);
json数组
$json = '[{"id":"22","name":"33","descn":"44"}]'; //json格式的数组转换成 php的数组
$arr = (Array)json_decode($json);
echo $arr[0]->id; //用对象的方式访问
㈩ php如何读取json的内容
如果json是以对象的方式存储于变量$json中,则这样引用: $json->openid
如果json是以关联数组的方式存储于变量$json中,则这样引用: $json['openid']
如果json是以字符串的方式存储于变量$json中,则需要先转换一下:
$a=json_decode($json);
print_r($a->openid);
或者
$a=json_decode($json,true);
print_r($a['openid']);