0

私のjsonファイルの内容は次のようにフォーマットされています:

[
  {
    "id": 1,
    "keyword_filter": null,
    "name": "My Name ",
    "type": "some product",
    "sku": "1234567",
    "nested_obj": {
      "url": "http://someurl.com",
      "resource": "/orders"
    }
  }
]

次のように変数に読み込むことができます。

$json_string = file_get_contents($jsonFile);

最終的には、そこからタブ区切りのファイルを作成する必要がありますが、それを反復することさえできないようです。これが私が試したことです:

foreach($json_string as $item) {
    echo $item;
}

これにより、foreach ループで無効な引数を指定したというエラーが表示されます。

次のような配列に読み込んでみました。

$json_array = file($jsonFile);
foreach($json_array as $item) {
    echo $item;
}

これは、JSON オブジェクトである 1 つの項目を持つ配列をエコーし​​ます。

誰かがそのJSONオブジェクトに入る方法を教えてもらえますか? エンコードして JSON に戻すと、引用符が二重にエスケープされ、デコードすると NULL が返されます。

ここでのヘルプは大歓迎です...タブ区切りファイルへの変換に関するヒントは非常に高く評価されますが、最初のステップだけで問題ありません。

ありがとう。

4

3 に答える 3

2

これを試して :

json_decode:json文字列を配列に変換します: http: //php.net/manual/en/function.json-decode.php

$array  = json_decode($json_string, true);

echo "<pre>";
print_r($array);

/// write the forech basd on the array out put.    

foreach($array as $item) {
    echo $item['id'];
}
于 2013-02-21T09:43:07.557 に答える
1

そこからタブ区切りファイルを作成する必要があります

$json_string = json_decode(file_get_contents($jsonFile), true);

foreach ($json_string as $k => $vals){
 // tab delimited header
 if ($k == 0) {
  echo join ("\t", array_keys($vals))."\n";
 }
 // tab delimited row
 echo join ("\t", $vals)."\n";

}
于 2013-02-21T10:22:59.803 に答える
1

私はこれを試しました:

<?php

$str = '[
  {
    "id": 1,
    "keyword_filter": null,
    "name": "My Name ",
    "type": "some product",
    "sku": "1234567",
    "nested_obj": {
      "url": "http://someurl.com",
      "resource": "/orders"
    }
  }
]';


$array  = json_decode($str, true);

echo "<pre>";
print_r($array);

/// write the forech basd on the array out put.    

foreach($array as $item) {
    echo $item['id'];
}

?>

出力を得ました:

Array
(
    [0] => Array
        (
            [id] => 1
            [keyword_filter] => 
            [name] => My Name 
            [type] => some product
            [sku] => 1234567
            [nested_obj] => Array
                (
                    [url] => http://someurl.com
                    [resource] => /orders
                )

        )

)
1

そして、それがあなたの望むアウトプットです。1ここで、配列の最後に、次の値であることがわかりますecho $item['id'];

于 2013-02-21T10:14:34.687 に答える