簡體   English   中英

解析 JavaScript 中的嵌套 Json 對象

[英]Parsing Nested Json objects in JavaScript

嗨,我是 Javascript 的新手,我想知道如何解析 json 對象。

我有一個與此類似的 Json object

{ "M":{"mot":"abandonner"}, "CONT":"N f preuve p", "DOM":{"nom":"sociologie"}, "OP":"car",
 "SENS":"quitter,délaisser", "OP1":"H2a1", "CA":{"categorie":"Vt"}}

我想解析 javascript 中的 json 文件並將結果發送到

xhr.open("POST", "http://localhost:8080/word/listWords2", true);

我的 function:

function addListBdd() {
var inputFile = document.getElementById('inputFile').files[0];

var reader = new FileReader();

    reader.onload = function (event) { 
        var resultRest = reader.result;
        var json = JSON.parse(resultRest);
        var result = [];
       for(var i=0; i<json.length;i++){
            var obj = json[i];
            //TO DO
       }
    };

    reader.readAsText(inputFile);
}

編輯 HTML 代碼:

<div class="col-sm-6 col-md-6">
                            <h2 class="font-weight-light">Liste de mots à ajouter</h2>
                            <div class="form-group">
                                <label for="FichierAdd">Fichier</label>
                                <input type="file" class="form-control-file" id="inputFile" name="myFile"><br>
                                <button onclick="addListBdd()" type="button" class="btn btn-success center-block" >Ajouter la liste</button>
                            </div><br><br><br><br>

您可以使用FormData將文件(請參閱BlobFile )或字符串發送到服務器。 MDN 上有一個很好的介紹。 如果要發送其他內容,則必須先將其轉換為這些數據類型之一。 對於像您這樣的 object ,您可以使用JSON.stringfy()將其轉換回字符串,然后在服務器端解析它。

MDN:使用 FormData 對象

您沒有描述應該如何使用 POST 方法發送數據,所以我只是舉一個如何使用它的一般示例:

var formData = new FormData();

// add a string
formData.append('A_FORMDATA_ATTRIBUTE', 'A TEXT AS STRING');
// add a file
var exampleFile = new Blob(['<a id="a"><b id="b">hey!</b></a>'], {type : 'text/html'});
formData.append('ANOTHER_ATTRIBUTE', exampleFile);

// send the data
xhr.open("POST", "http://localhost:8080/word/listWords2", true);
request.send(formData);

編輯:
將結構化數據(如帶有對象的數組)傳輸到服務器端的最佳方式是發送一個.json文件作為請求正文。 這可以在沒有FormData的情況下直接完成。 服務器必須讀取請求正文並以他需要的任何結構解析 JSON。

// object that needs to be transmitted
var body = [{
    "M":{"mot":"abandonner"},
    "CONT":"N f preuve p",
    "DOM":{"nom":"sociologie"},
    "OP":"car",
    "SENS":"quitter,délaisser",
    "OP1":"H2a1",
    "CA":{"categorie":"Vt"}
  }, {
    "M":{"mot":"abandonner"},
    "CONT":"N f preuve p",
    "DOM":{"nom":"sociologie"},
    "OP":"car",
    "SENS":"quitter,délaisser",
    "OP1":"H2a1",
    "CA":{"categorie":"Vt"}
  }];

// open connection
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://localhost:8080/word/listWords2", true);
// set content type to JSON 
xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
// attach the body as a string
xhr.send(JSON.stringify(body));

暫無
暫無

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

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