php 处理json字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 处理json字符串相关的知识,希望对你有一定的参考价值。

我是用php调用java的webservice,在java中的值是
["USERNAME":"user1","PASSWORD":"123","USERNAME":"user2","PASSWORD":"234"]
不知道在php中怎么处理,拿两个函数都已试过,不能转换,不知道大家有什么思路。
在php中使用
$obj = json_decode((string)$result,true);
print_r($obj);
结果是Array ( ) ;使我有些费解。

参考技术A 这个PHP 本身有二个函数 :
1. json_encode( array 或 object) 这个是用来把对象 或 数组转换为 JSON格式数据;
2. json_decode(string , boolen[数组为true,对象不用设置]) 这个是把现有的JSON数据转化为 PHP 数组或对象.
式例:
$a = array(1 => 'a', 2 => 'b', 3 => 'c', 4 => 'd');
$b = json_encode($a);
echo $b; // 这里得到字串 ""1":"a","2":"b","3":"c","4":"d""
$c = json_decode($b, true);
var_dump($c); // 这里得到$a数组
如果JSON数据是一个数据, 转化时建议把json_decode函数的第二个参数设为true, 对象则不用.
希望可以帮到你追问

结果不是很正确,不知道哪个环节出问题,请看下我补充的内容。3q

追答

我看了一下.
$str = "["USERNAME":"user1","PASSWORD":"123",
"USERNAME":"user2","PASSWORD":"234"]"
最外面是中括号, 所以是一个数组.
我刚刚用 json_decode($str, true);
得到结果如下:
array(2)
[0]=>
array(2)
["USERNAME"]=>
string(5) "user1"
["PASSWORD"]=>
string(3) "123"

[1]=>
array(2)
["USERNAME"]=>
string(5) "user2"
["PASSWORD"]=>
string(3) "234"


不知道是不是你要得到的数据

参考技术B 定义一个php二维数组,把这个数组传给json_encode函数处理后转化位json格式,赋值给userinto,输出来。

eval() 函数把字符串按照 PHP 代码来计算。
如:
<?php
$string = "beautiful";
$time = "winter";

$str = 'This is a $string $time morning!';
echo $str. "<br />";

eval("\$str = \"$str\";");
echo $str;
?>
输出:

This is a $string $time morning!
This is a beautiful winter morning!

如何使用php解析json数组并显示?

我使用php调用twitter的timeline,得到json数组,如何使用php解析并显示?json类似这样:["text":"感觉Onedrive图片加载的速度特别慢","created":"Sat Nov 07 20:47:13 +0000 2015","favorite_count":0,"retweet_count":0,"url":"","media_url":""]需要获取text和created

$jsonStr = '["text":"感觉Onedrive图片加载的速度特别慢","created":"Sat Nov 07 20:47:13 +0000 2015","favorite_count":0,"retweet_count":0,"url":"","media_url":""]';

$arr = json_decode($jsonStr, true);

$text    = $arr['text'];
$created = $arr['created'];

// 或者 

$arr = json_decode($jsonStr);

$text    = $arr->text;
$created = $arr->created;

追问

提示Notice: Undefined index: text in runphp.php(11) : regexp code(1) : eval()'d code(2) : eval()'d code on line 7

参考技术A json_decode追问

可不可以给个实例?

追答

已经给出你函数了,你还不会用,我也不想说什么了,其实百度一下就能得到答案你却懒得动手,告诉你函数也就算了,你还懒得查用法,好吧 我对你这种伸手党不想说第三句话。

以上是关于php 处理json字符串的主要内容,如果未能解决你的问题,请参考以下文章

php解析json数组问题。

用 JQuery/PHP 解析嵌套的 JSON 字符串对象?

php中怎么把json双引号前加上转义符\

PHP-操作json

ajax传值php页面接收处理为json 有值 但返回为null 求解

php数组转换成json格式后汉字怎么就被解析成字母了啊