2 ftdd hw FTDD_HW 于 2015.07.26 16:08 提问

新手,关于PHP操作JSON数据的问题。不胜感激!

我通过 WebService调用了一个接口, 它返回来的是一个xml文件。文件内容是这样的形式:图片说明 (不好意思,个人信息不允许透露)。我不会PHP ,在网上找了下,用file_get_contents(“接口网址”)获取了图上的{}中的内容。现在我怎么去操作才能获取json的参数。比如我要获取status的值进行判断? 已经研究了几天,网上也找了好久。望大神指点,小弟不胜感谢!(C币只能这个了。T _ T)

再补充一下:我将取得的内容给一个变量,$json=file_get_contents(“接口网址”);再这样$str_json=json_decode($json,true);但好像还是操作不了JSON中的值

3个回答

showbo
showbo   Ds   Rxr 2015.07.26 16:32
已采纳
 $s='<string xmlns="">{"status":"1","Msg":"登陆成功"}</string>';

$dom=new DomDocument;
$dom->loadXML($s);
$s=$dom->getElementsByTagName('string')->item(0)->nodeValue;//获取json字符串
$o=json_decode($s);//转为对象
echo $o->status;//这个就是你要的数据,其他的使用$o->Msg等等
FTDD_HW
FTDD_HW 确实是这样的,已经好了。非常感谢!
2 年多之前 回复
FTDD_HW
FTDD_HW 回复showbo: 谢谢您耐心回答,但我这样写还是有错误,我截图贴在这个问题的回答中了。希望大神再指点下。
2 年多之前 回复
showbo
showbo 回复FTDD_HW: 我代码不是给你了。你要是直接返回json格式字符串,直接json_decode转为对象。$o=json_decode($s); echo $o->status;。$s是你获取到的内容
2 年多之前 回复
FTDD_HW
FTDD_HW 回复showbo: 我现在用file_get_contents能获取到{"status":"1","Msg":"登陆成功"}这个内容。但是不知道如何去取里面的值,对php没做过。你能写一个例子吗?
2 年多之前 回复
showbo
showbo 回复FTDD_HW: 你不是ws返回xml字符串?所以需要解析XML字符串获取你的json字符串。如果是返回json字符串就不需要DomDocument对象了。获取远程数据就用file_get_contents就行了
2 年多之前 回复
FTDD_HW
FTDD_HW 谢谢,但还是有点不明白。我的XML文件不是我本地的,是调用接口返回的。我怎么去用PHP获取<string xmlns="">{"status":"1","Msg":"登陆成功"}</string>这个内容呢?我用file_get_contents()获取的只是这个{"status":"1","Msg":"登陆成功"}内容。小小白一个,先谢啦!!
2 年多之前 回复
FTDD_HW
FTDD_HW   2015.07.26 17:36

showbo ,谢谢您的耐心回答!

我的代码现在是这样的:图片说明

运行结果是:图片说明

那个url打开是这个:图片说明

请问是哪里出了问题吗?

showbo
showbo 查看源代码,返回的是xml,你照我原来的代码没有问题。$s给位你的file_get_contents
2 年多之前 回复
CSDNXIAON
CSDNXIAON   2015.07.26 16:18

php返回json数据中文显示的问题
php返回json数据中文显示的问题
PHP操作json
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

FTDD_HW
FTDD_HW 谢谢,不过不是中文显示的问题呢
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片