簡體   English   中英

在Mobilefirst平台的jsonstore中無法讀取長度屬性錯誤

[英]Cannot read length property error in jsonstore in Mobilefirst platform

我是javascript和MobileFirst的新手。 我試圖讀取json值列表:

[{"_id":1,"json":{"age":10,"name":"carlos"}},{"_id":2,"json":{"age":10,"name":"carlos"}}]

並在DOM中輸出值。 它失敗並輸出以下錯誤:

03-27 04:29:19.035:E / NONE(3093):未捕獲的異常:未捕獲的語法錯誤:(compiled_code):311的意外令牌o

這是函數:

main.js:

 function add(){
    var collectionName = 'people';

    // Object that defines all the collections.
    var collections = {

      // Object that defines the 'people' collection.
      people : {

        // Object that defines the Search Fields for the 'people' collection.
        searchFields : {name: 'string', age: 'integer'}
      }
    };

    // Optional options object.
    var options = {


    };

    WL.JSONStore.init(collections, options)

    .then(function () {

      // Data to add, you probably want to get
      // this data from a network call (e.g. Worklight Adapter).
      var data = [{name: 'carlos', age: 10}];

      // Optional options for add.
      var addOptions = {

        // Mark data as dirty (true = yes, false = no), default true.
        markDirty: true
      };

      // Get an accessor to the people collection and add data.
      return WL.JSONStore.get(collectionName).add(data, addOptions);
    })

    .then(function (numberOfDocumentsAdded) {
      // Add was successful.
        alert("Data successfully added.");
    })

    .fail(function (errorObject) {
        alert("Data failed to be added.");

    });

}
function display(){
var collectionName = 'people';



var options = {
 };

WL.JSONStore.get(collectionName)

.findAll()

.then(function (arrayResults) {
  // arrayResults = [{_id: 1, json: {name: 'carlos', age: 99}}]

    var arrayResult = '{"files":' + arrayResults + '}';
    alert(arrayResults.length);
    var jsonData = JSON.parse(arrayResult);
    alert (jsonData.files.length);
    alert(jsonData);



     var full_list = "";
    for (var i = 0; i < jsonData.files.length; i++) {
        var file = jsonData.files[i];
        full_list =  full_list + file.json.name + " " + file._id + " is " + file.json.age + '<br />';
        $("#demo").append(full_list); 


    }



})
.fail(function (errorObject) {
  // Handle failure.
});


 }

index.html

<a href="#" onclick="display();" >click here to display the data</a>
        <br /> 
        <a href="#" onclick="deldocument();" >click here to delete the data</a>
        <p id="demo"></p> <br /> 
        <a href="#" onclick="destroy();" >click here to destroy the data</a>
        <p id="demo"></p> <br />

如果能得到幫助,我將不勝感激。 謝謝你們

如果您對一個對象進行JSON.parse ,則拋出"Unexpected token o"原因很簡單,因為它試圖解析obj_to_parse.toString() ,即[object Object] 嘗試JSON.parse('[object Object]')

這是您的結果:

//arrayResults = [{_id: 1, json: {name: 'carlos', age: 99}}]

嘗試這樣閱讀:

       var full_list="";
        for(var i=0;i<arrayResults.length;i++){ 
            // alert(arrayResults[i]._id);
            // alert(arrayResults[i].json.name); 
            // alert(arrayResults[i].json.age);
           full_list =  full_list + arrayResults[i].json.name + " " + arrayResults[i]._id + " is " + arrayResults[i].json.age + '<br />';
        $("#demo").append(full_list);  

         }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM