1

したがって、次のPHP文字列があります。

$output = {"playerId":1178,"percentChange":0.1,"averageDraftPosition":260,"percentOwned":0.1,"mostRecentNews":{"news":"Accardo was called up from Columbus on Monday, the Indians' official Twitter feed reports.","spin":"He'll replace Dan Wheeler on the active roster after carrying a 2.76 ERA over 13 appearances with the Clippers to start the season.","date":"Mon May 14"},"fullName":"Jeremy Accardo"}

私が必要としているのは、「アカルドは月曜日にコロンバスから呼び出されたと、インディアンズの公式ツイッターフィードが報告している」ということです。「クリッパーズで 13 試合に出場し、2.76 ERA を達成した後、彼はアクティブな名簿のダン ウィーラーに取って代わり、シーズンを開始します。」部分文字列として。しかし、それを行うための最良かつ最もエレガントな方法を理解できないようです。文字列を JSON_decode しようとしましたが、何も返されません。何か案は?(私はPHPを使用しています)

4

4 に答える 4

2

それは ではありませんstring。このようにしてみてください:

$output = '{"playerId":1178,"percentChange":0.1,"averageDraftPosition":260,"percentOwned":0.1,"mostRecentNews":{"news":"Accardo was called up from Columbus on Monday, the Indians\' official Twitter feed reports.","spin":"He\'ll replace Dan Wheeler on the active roster after carrying a 2.76 ERA over 13 appearances with the Clippers to start the season.","date":"Mon May 14"},"fullName":"Jeremy Accardo"}';

$object = json_decode($output);
$array = json_decode($output, true);
$string = json_encode($array);
于 2012-05-17T06:34:50.033 に答える
1

エスケープされていない文字列がほとんどないため、エラーが発生しています。簡単なフォーマットで時間を節約できたかもしれません。

$output = '{
    "playerId":1178,
    "percentChange":0.1,
    "averageDraftPosition":260,
    "percentOwned":0.1,
    "mostRecentNews": {
        "news":"Accardo was called up from Columbus on Monday, the Indians official Twitter feed reports",
        "spin":"Hell replace Dan Wheeler on the active roster after carrying a 2.76 ERA over 13 appearances with the Clippers to start the season.",
        "date":"Mon May 14"
    },
    "fullName":"Jeremy Accardo"
}';
$json = json_decode($output);
于 2012-05-17T06:35:02.497 に答える
0

json_encode は UTF8 のみです。utf8ですべてを使用していますか?あなたはsynstaxエラーを持っています。json 変数を手動で定義すると、次のようになります。

<?php
$output=<<<JSONSTR
{"playerId":1178,"percentChange":0.1,"averageDraftPosition":260,"percentOwned":0.1,"mostRecentNews":{"news":"Accardo was called up from Columbus on Monday, the Indians' official Twitter feed reports.","spin":"He'll replace Dan Wheeler on the active roster after carrying a 2.76 ERA over 13 appearances with the Clippers to start the season.","date":"Mon May 14"},"fullName":"Jeremy Accardo"}
JSONSTR;
$variable = json_decode($output);
var_dump($variable);
?>
于 2012-05-17T06:40:56.317 に答える
0

これを試しましたか?

$output = '{"playerId":1178,"percentChange":0.1,"averageDraftPosition":260,"percentOwned":0.1,"mostRecentNews":{"news":"Accardo was called up from Columbus on Monday, the Indians\' official Twitter feed reports.","spin":"He\'ll replace Dan Wheeler on the active roster after carrying a 2.76 ERA over 13 appearances with the Clippers to start the season.","date":"Mon May 14"},"fullName":"Jeremy Accardo"}';

$array = json_decode($output, true);

echo $array['mostRecentNews']['news'];
echo $array['mostRecentNews']['spin'];
于 2012-05-17T06:32:31.717 に答える