0

こんにちは、JSON を使用して location.xml というファイルから情報を取得するスクリプトを持っています。現在、コードを使用してデータベースから情報を取得しようとしています。

以下は、元の JSON ファイルと XML 構造です。

 //Check if the locations.xml file exists, if it does encode it to JSON for the app
if (file_exists('locations.xml')) {
    $xml = simplexml_load_file('locations.xml');
    $json = json_encode($xml);
    print_r($json);
} else {
    exit('Failed to open locations.xml.');
} 

 <location>
    <title>Union Station</title>
    <address>800 North Alameda Street Los Angeles, CA 90012</address>
    <details>Los Angeles Union Station (or LAUS, formerly the Los Angeles Union Passenger Terminal or LAUPT) is the main railway station in Los Angeles, California.</details>
    <images>
    </images>
    <marker>/css/img/markers/binoculars.png</marker>
    <lat>34.05515</lat>
    <lng>-118.23525</lng>
</location>

これにより、次の出力が得られました

  {"location":[{"title":"Hollywood Sign","address":"3204 Canyon Lake Drive, Los Angeles, CA","details":"The Hollywood Sign is a famous landmark in the Hollywood Hills area of Mount Lee, Santa Monica Mountains, in Los Angeles, California. The iconic sign spells out the name of the area in 45-foot-tall (14 m) and 350-foot-long (110 m) white letters.","images":{"image":["1_1.jpg","1_2.jpg"]},"marker":"\/css\/img\/markers\/photography.png","lat":"34.134103","lng":"-118.321694"}]}

私が行ったことは、PHPコードを呼び出してMYSQLデータベースから同じ情報と構造を取得するように上記を変更したことです。コードはJSON出力とともに以下に示されています。

    $query = mysql_query("SELECT * FROM locations");
     $rows = array();
     while($row = mysql_fetch_assoc($query)) {
     $rows['location'][] = $row;
     }
     print json_encode($rows);


     {"location":[{"Title":"Hollywood Sign","Address":"3204 Canyon Lake Drive, Los Angeles, CA","details":"The Hollywood Sign is a famous landmark in the Hollywood Hills area of Mount Lee, Santa Monica Mountains, in Los Angeles, California. The iconic sign spells out the name of the area in 45-foot-tall (1","images":"","marker":"\\\/css\\\/img\\\/markers\\\/photography.png","lat":"34.134103","lng":"-118.321694"}]}

両方の出力が同じであることがわかるように、2 番目の出力には情報が表示されません。私のコードには、JSON データを取得して渡すように見える次のコードがあります。

     //Register the Location Model
    Ext.regModel('Locations', {
    fields: locationFields //Set the fields to be stored from the config file

});

    //Load XML data from JSON into local store
    app.stores.LocationsList = new Ext.data.Store({
    model: "Locations", //Model to use for the Store
    sorters: [{
    property: 'title', //Set the title as a sorter to the listing card can use the   grouped list layout
                direction: 'ASC'
            }],
      proxy: {
      type: 'ajax', //Load JSON from our source defined in the config file
      url: JSON_SOURCE, 
      reader: {
        type: 'json',
        root: 'location'
        },
        id  : 'Locations'
      },
      getGroupString : function(record) {
    // return the first character of the address in order to group
    return record.get('title')[0];
   },

       listeners: {
      'load': function (t, r, s) {
        //Fire custom event once all the load is complete
         Ext.dispatch({
            controller: app.controllers.map,
            action: 'loaded',
            records: r
            });
          },
        },
      autoLoad : true //We start loading the info into the datastore immediately after the app is started to make it available ASAP

           });  

この最後のコードを何十回も実行しましたが、2 番目の情報を異なる方法で処理する理由がわかりません。

任意の提案をいただければ幸いです。

ありがとう

4

1 に答える 1

0

上記のコードが完全に機能することを変更したら、テーブルフィールドに大文字の最初の文字を追加したことを解決しました。

于 2012-12-01T16:28:15.053 に答える