如何在PHP中逐行获取一行JSON的值

如何在PHP中逐行获取一行JSON的值

问题描述:

I am receiving a JSON array from Javascript as a $_POST variable.

I want to get all variables and its values of the JSON. I tried to use json_decode with foreach like bellow but it did not work. my php code is

<?php

$string = $_POST['json'];
var_dump(json_decode($string, true));
foreach($string as $key => $value) {
  echo $key . " : " . $value;
}

?>

my json is

[{"EXTAPP_ID":"9901","CATEGORY_ID":"10","LANGUAGE_CODE":"tr","CATEGORY_LANG_DESC":"TR AAA"},{"EXTAPP_ID":"9901","CATEGORY_ID":"10","LANGUAGE_CODE":"de","CATEGORY_LANG_DESC":"DE AAA"},{"EXTAPP_ID":"9901","CATEGORY_ID":"20","LANGUAGE_CODE":"de","CATEGORY_LANG_DESC":"DE XXX"},{"EXTAPP_ID":"9901","CATEGORY_ID":"20","LANGUAGE_CODE":"tr","CATEGORY_LANG_DESC":"TR YYY"},{"EXTAPP_ID":"9901","CATEGORY_ID":"10","LANGUAGE_CODE":"en","CATEGORY_LANG_DESC":"EN ZZZ"},{"EXTAPP_ID":"9901","CATEGORY_ID":"20","LANGUAGE_CODE":"en","CATEGORY_LANG_DESC":"EN VVV"}]

it returns the request as a array like bellow (I did not paste all result)

array(6) {
  [0]=>
  array(4) {
    ["EXTAPP_ID"]=>
    string(4) "9901"
    ["CATEGORY_ID"]=>
    string(2) "10"
    ["LANGUAGE_CODE"]=>
    string(2) "tr"
    ["CATEGORY_LANG_DESC"]=>
    string(19) "TR XXX"
  }
  [1]=>
  array(4) {
    ["EXTAPP_ID"]=>
    string(4) "9901"
    ["CATEGORY_ID"]=>
    string(2) "10"
    ["LANGUAGE_CODE"]=>
    string(2) "de"
    ["CATEGORY_LANG_DESC"]=>
    string(17) "TR YYY"
  }
  [2]=>

what I expected was

EXTAPP_ID: 9901
CATEGORY_ID:10
LANGUAGE_CODE:de
CATEGORY_LANG_DESC:DE AAA

Decode the string with $string = json_decode($_POST['json'], true);

You can get desired result by following code

$string = $_POST['json'];
$string = json_decode($string, true);
foreach($string as $value) {
    foreach($value as $k=>$v) {
        echo $k . " : " . $v .'<br/>';
    }
    echo '<hr>';
}

Try this instead:

$string = json_decode($_POST['json'], true);
foreach($string as $key => $value) {
  echo $key . " : " . $value;
}

Try this:

$string = $_POST['json'];
$data = json_decode($string, true);
var_dump($data);
foreach($data as $key => $value) {
  echo $key . " : " . $value;
}