将android的json响应与php服务器中的外部json url进行比较


Comparing json response from android to external json url in php server

我想将mobileuser从android应用程序输入的条形码与我使用php从服务器端的商家收到的json url进行比较。

假设这是我的移动用户数据(硬编码):

$mobile_card="Card1";
$mobile_code="00004000";

这是我收到的json url:

$merchant = file_get_contents('http://localhost/project1/index.php/memberaccount/sendjson');
$decode=json_decode($merchant, true);

json url中有两行数据:

 [{"merchant_code":"12300000","merchant_contact":"011000000"},        
{"merchant_code":"00004000","merchant_contact":"0123456789"}]

这是我比较$mobile_code和$merchant_code的代码:

foreach ($decode as $d)
                {
                    $merchantCode = $d['merchant_code']; 
                    if ($merchantCode == $mobile_code)
                    {
                       $response["success"] = 1;
                       $response["message"] = "code Exists.";
                       echo json_encode($response);

                    }  
                    else
                     {
                            $response["success"] = 0;
                            $response["message"] = "code NOT Exists";
                            echo json_encode($response);
                        }
                }
         }

这是我得到的输出:

{"success":0,"message":"Code NOT exists"}
{"success":1,"message":"Code Exists."}

然而,我只希望输出只有一行,在这种情况下,代码存在于第二行,所以我只希望结果显示成功和存在的结果。(仅显示"条形码存在")

我不希望结果不成功。有人能帮忙吗?非常感谢。

这样试试:

foreach ($decode as $d)
{
    $merchantCode = $d['merchant_code']; 
    if ($merchantCode == $mobile_code)
    {
        $response["success"] = 1;
        $response["message"] = "code Exists.";
        echo json_encode($response);
        die();
     }  
}
$response["success"] = 0;
$response["message"] = "code NOT Exists";
echo json_encode($response);

或者,如果你想更优雅一点(使用die()不是很好),可以将代码封装在一个函数中:

function lookupMerchantCode($merchants, $code) 
{
   foreach ($merchants as $merchant)
    {
        $merchantCode = $merchant['merchant_code']; 
        if ($merchantCode == $code)
        {
            return true;
        }  
    }
    return false;
}
$result = lookupMerchantCode($decode, $mobile_code);
if ($result) 
{
     echo json_encode(array('success' => 1, 'message' => 'code Exists'));
}
else
{
     echo json_encode(array('success' => 0, 'message' => 'code NOT Exists'));
}