在PHP中使用JSON

时间:2014-07-28 07:48:07

标签: php json

我使用一些网站向我提供有关IP的信息,但该网站以JSON格式返回的信息,我不知道JSON。我想用它来检查用户是否来自IR做了什么,但我不知道如何在php中使用JSON,
这是网站返回的JSON:

{"address":"0.0.0.0.0","country":"IR","stateprov":"somewhere ","city":"Tehr\somewhere (somewhere)"}

我想将国家/地区保存在变量中并将此代码添加到我的网站:

<?php
if($country == 'IR'){
//Do somethong  
}

$country是从网站返回的国家/地区名称,

4 个答案:

答案 0 :(得分:4)

您需要使用json_decode()

$s = '{"address":"0.0.0.0.0","country":"IR","stateprov":"somewhere ","city":"Tehrsomewhere (somewhere)"}';

$d = json_decode($s);

返回:

stdClass Object
(
    [address] => 0.0.0.0.0
    [country] => IR
    [stateprov] => somewhere 
    [city] => Tehrsomewhere (somewhere)
)

这样您就可以查看国家/地区/其他字段:

if($d->country == 'IR') {
    // do something
}

注意:您的"city"字段中出现了错误(无效的json),\使其无效。

Example


您可以通过JSON Lint检查您的json是否有效。

答案 1 :(得分:0)

我认为您正在寻找功能json_decode。它会解码JSON string

See the documentation here

答案 2 :(得分:0)

首先,我想告诉你,鉴于json无效。由于"city" : "Tehr\somewhere (somewhere)""\"无效。

因此请将其更改为以下格式。

$jsonEncode = { "address": "0.0.0.0.0","country": "IR","stateprov": "somewhere ","city": "There somewhere (somewhere)"}

$jsonDecode = json_decode($jsonEncode,true);

现在您将获得数组格式的值。

Array(
    [address] => 0.0.0.0.0
    [country] => IR
    [stateprov] => somewhere 
    [city] => There somewhere (somewhere)

);

print_r($jsonDecode['city']);会为您提供城市名称或详细信息

答案 3 :(得分:0)

你必须首先解码这个json字符串。

$data = '{"address":"0.0.0.0.0","country":"IR","stateprov":"somewhere ","city":"Tehr\somewhere (somewhere)"}';

$decodeData = json_decode($data);

然后在php中使用这个解码json字符串。

if($decodeData->country == 'IR'){
//Do somethong  
}