3

このタイプのアレイの正しい名前は何ですか?

「issuedTime」、「text」、「url」、「validToTime」で構成される3つのメインセクションと4つのサブパートがありますが、これをオブジェクトに変換するにはどうすればよいですか。メインセクションが1つしかない場合は、3つのメインパーツを使用するのはかなり簡単ですが、各メインセクションを識別できないため、どこから始めればよいか頭を悩ませることはありません。

どんなアドバイスもありがたいです。

[{
"issuedTime":"7:13pm Sunday 13 June 2010",
"text":"\nAmended 7:10pm.\n\nText text and more text\n",
"url":"\/folder\/fc\/name.png",
"validToTime":"12:00am Monday 14 June 2010"
},{
"issuedTime":"8:33pm Sunday 13 June 2010",
"text":"\nText and more text.\n",
"url":"\/folder\/fc\/name.png",
"validToTime":"12:00pm Monday 14 June 2010"
},{
"issuedTime":"10:40am Sunday 13 June 2010",
"text":"\nAnd even more text.",
"url":"\/folder\/fc\/name.png",
"validToTime":"12:00am Tuesday 15 June 2010"
}
]
4

4 に答える 4

10

JSON(JavaScript Object Notationの頭字語)は、人間が読める形式のデータ交換用に設計された、軽量のテキストベースのオープンスタンダードです。これは、オブジェクトと呼ばれる単純なデータ構造と連想配列を表すためのJavaScriptプログラミング言語から派生しています。JavaScriptとの関係にもかかわらず、JavaScriptは言語に依存せず、事実上すべてのプログラミング言語でパーサーを使用できます。

関数を使用して簡単にphp配列に変換できますjson_decode。phpサイトの例を次に示します。

$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json, true));

結果:

array(5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

の2番目のパラメーターjson_decodeは、連想配列に変換する必要があるかどうかです。2番目のパラメーターを指定しない場合、出力は次のようになります。

object(stdClass)#1 (5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

したがって、次のように配列に変換してループすることができます。

$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
$array = json_decode($json, true);
print_r($array);

foreach($array as $key => $value)
{
   // manipulate the var $value
}
于 2010-06-13T09:44:11.883 に答える
2

そのjsonを解析する方法は次のとおりです

<?php
$json = '[{
    "issuedTime":"7:13pm Sunday 13 June 2010",
    "text":"\nAmended 7:10pm.\n\nText text and more text\n",
    "url":"\/folder\/fc\/name.png",
    "validToTime":"12:00am Monday 14 June 2010"
    },{
    "issuedTime":"8:33pm Sunday 13 June 2010",
    "text":"\nText and more text.\n",
    "url":"\/folder\/fc\/name.png",
    "validToTime":"12:00pm Monday 14 June 2010"
    },{
    "issuedTime":"10:40am Sunday 13 June 2010",
    "text":"\nAnd even more text.",
    "url":"\/folder\/fc\/name.png",
    "validToTime":"12:00am Tuesday 15 June 2010"
}]';
// Parse the json into a PHP array that holds multiple "stdClass Object"s
$obj = json_decode($json);  
// Iterate through each "stdClass Object" and show what it contains  
foreach($obj as $var => $value)
{
    echo "Number: $var <br/>";    
    echo "Issued: " . $obj[$var]->issuedTime . "<br/>";                    
    echo "Text: " . $obj[$var]->text . "<br/>";    
    echo "URL: " . $obj[$var]->url . "<br/>";    
    echo "Valid to: " . $obj[$var]->validToTime . "<br/>";       
    echo "<br/>";
}
?>

$ objを取得したら、上記のforeachループのようにアクセスできます。または、2番目のリストのテキストにアクセスするとします。

echo $obj[1]->text; // Second listing, since the first listing is $obj[0]

そして、同じためのテキスト付きのHTMLリンク:

echo '<a href="' . $obj[1]->url . '">' . $obj[1]->text . '</a>';
于 2010-06-13T13:13:17.553 に答える
1

json_decode()を試しましたか?これを正しく解析する必要がありstdObjectます。

于 2010-06-13T09:45:52.203 に答える
1

ご覧ください: http ://www.lost-in-code.com/programming/php-code/php-array-to-object/

于 2010-06-13T12:53:11.457 に答える