2

次のようにjqueryを使用して、ajax経由でphpスクリプトからテキストを受け取ります。

$.ajax({
        dataType: 'json',
           url: 'someURL.com',
                success:function(result){
                    json = JSON.parse(result.rgraph);
})

result.rgraph は次のように php で送信されます。

$arr = array( 'actiondata'=> 'some info here',  'rgraph' => $this->_rgraph() );
$jsonTable = json_encode($arr);

return $jsonTable;

$this->_rgraph() は以下を返す単なる関数です:

return '{ id: "0_0", name: "Category", children: [{ id: "0_1", name: "Business services", data: { relationship: "" },children: [{ id: "0_2" 、名前: "H-FARM Ventures"、データ: {関係: "" }、子供: [] }]}、{ id: "0_3"、名前: "原因"、データ: {関係: "" }、子供: [{ id: "0_4", name: "StartupVisa", data: { relationship: "" }, children: [] }]},{ id: "0_5", name: "Community", data: { relationship: "" },children: [{ id: "0_6", name: "さまざまなソリューション", data: { relationship: "" }, children: [] }]},{ id: "0_7", name: "ニュース/ media website", data: { relationship: "" },children: [{ id: "0_8", name: "iSpazio", data:{関係: "" }, 子供: [] }]},{ id: "0_9", 名前: "非営利団体", データ: {関係: "" },子供: [{ id: "0_10", name: "Indigeni Digitali", data: { relationship: "" }, children: [] }]},{ id: "0_11", name: "Website", data: { relationship: "" },children: [{ id: "0_12", name: "ホット ピン ベネズエラ", data: { relationship: "" }, children: [] },{ id: "0_13", name: "El Chiguire Bipolar", data: { relationship: " " }、子: [] }]}]、データ: {関係: "何らかのテキスト" }}';{ 関係: "" }, 子: [] }]},{ id: "0_11", 名前: "ウェブサイト", データ: { 関係: "" },子: [{ id: "0_12", 名前: "ホット ピン ベネズエラ"、データ: {関係: "" }、子供: [] }、{ id: "0_13"、名前: "エル シギレ バイポーラ"、データ: {関係: "" }、子供: [] }] }]、データ: {関係:「何らかのテキスト」}}';{ 関係: "" }, 子: [] }]},{ id: "0_11", 名前: "ウェブサイト", データ: { 関係: "" },子: [{ id: "0_12", 名前: "ホット ピン ベネズエラ"、データ: {関係: "" }、子供: [] }、{ id: "0_13"、名前: "エル シギレ バイポーラ"、データ: {関係: "" }、子供: [] }] }]、データ: {関係:「何らかのテキスト」}}';

次に、この var (json) をチャート エンジンで使用します。_rhraph() によって返された文字列を、動作する JavaScript でハードコーディングされた ajax にコピーすると、文字列がオブジェクトとして取得され、chard が描画されます。しかし、スクリプトに php スクリプトから変数を取得させると、この変数はjson = JSON.parse(result.rgraph);のテキストとして到着すると思われます。json でアラートを実行すると、Object オブジェクトではなくコンテンツが表示されるためです。したがって、この時点でコードを次のように変更しました。json = JSON.parse(result.rgraph);

しかし、これによりエラーが発生します: Uncaught SyntaxError: Unexpected token i。何が起こっているのかわかりません。json var が正しくフォーマットされていないようですが、なぜ var をハードコーディングすると動作するのでしょうか? 何か案は?

4

4 に答える 4

1

有効なJSONのキーを引用する必要があります

于 2013-01-25T17:22:15.903 に答える
1

これは有効なJSONではありません。キー名は引用符で囲む必要があります。例:

{ "id" : ...
于 2013-01-25T17:22:33.873 に答える
1

すべてのJSONキーを引用符で囲みます( "id"、 "etc")...

于 2013-01-25T17:22:53.183 に答える
0

で解析する必要があると思いますjQuery.parseJSON()

json = jQuery.parseJSON(result);
于 2013-01-25T17:26:48.720 に答える