2012-04-27 10 views
0

ケース1:私にとっては何が効果がありませんか?上記のfile_get_contentsで出力を処理するためのJSON/XML解析およびjQueryコールバック

$phpObj=json_decode(file_get_contents($url),true); 

私JSONを返し、Iは、PHPオブジェクトに上記使用して、その変換した後、私は、多次元配列であり、単にキー値の新しいアレイを形成$ phpObjを(特定の文字列を抽出する)解析$ newObjと言ってください。その後、json_encodeを使ってnewObjをjsonに変換するだけです。

$ newObjを解析するためにjQueryを使用し、それをhtmlにレンダリングします。

ケース2:私にとっては何が効果的ですか?私は、XMLは、$ NEWOBJ(キーと値のペア)を作成し解析し

$xmlDoc->load($url); 

&、私はjQueryのを使用します。

の代わりに、私は私のサーバーはXMLを返すために取得し、代わりに私が使用して、上記のようなjson_decodeのJSONをパースします上記のように、ブラウザ上のレコードセットをレンダリングします。完全に正常に動作します。

今JSONやXMLをparsiongよりケース1と他のofcourseの2間の唯一の違いは、jQueryのレンダリングのためのコールバック関数で受信した値である。

ケース1の場合(動作しない):

{"1002":"I am Yavar","1003":"I work for XYZ","1004":"California is in US"} 
ケース2の場合

(作品):

[{"1000":"California is in US","xmlNode":{}},{"1001":"I work for XYZ","xmlNode":{}}] 

誰かがケース1に間違って起こっていることに関して、私を助けることができるし、角括弧([])がある場合、それは素晴らしいことだとケース2が実際に動作するために必要なxmlNodeの情報はありますか?本当にここに必要に応じて

は私のjQueryの関数である:

<script> 
$(document).ready(function() { 
$('#term').keyup(function() { 

    $.get('search_json.php?q='+escape($('#term').val()), function(data) { 
    html = '<table id="results">'; 
    $.each(data, function(ind, ep) { 
     html += '<tr><td class="document"><b>'+ind.key+'</b>&nbsp;'; 
     html += +ep.value+'</td></tr>'; 
    }); 
    html += '</html>'; 
    $('#results').replaceWith(html); 
    }); 
}); 
}); 
</script> 

答えて

1

あなたが非ゼロインデックス付きのキーを持つオブジェクト上の$ .each()を行うことはできません。メソッド2の理由は、1つのオブジェクトではなくオブジェクトの配列として返すためです。

使用方法2、またはループとしてそれを吐き出すだけで、あなたのJSONオブジェクトを介してと:

$outObj = array(); // Don't forget to initialise your arrays! 
foreach($phpObj as $key => $value) { 
    $value['key'] = $key; 
    $outObj[] = $value; 
} 
json_encode($outObj); 

はあなたが提案Javascriptを使用して反復可能になります内部配列を作成します。あなたはind.keyの代わりにep.keyを参照する必要があります。

+0

ありがとうTomHallam:これは役に立ちます。今私は若干異なるjsonオブジェクトを取得しています。私はそれについて別の質問を投稿した:http://stackoverflow.com/questions/10354892/different-output-json-formats。あなたの助けに感謝します、私はユーザーインターフェイスの絶対初心者です:) – Yavar

関連する問題