[英]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
將文件(請參閱Blob或File )或字符串發送到服務器。 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.