[英]Communication JSON between Java and Node.js
我必須從Java發送一個json到node.js! 為此,請使用以下代碼! json由單個Note字段和某個Articolo類型的數組組成! 事實是,當我在node.js中打印值時,出現以下錯誤。 您可以向我解釋一下,如何從node.js內的JSON獲取值? 奇怪的是,注釋字段甚至沒有打印
錯誤:
{ '{"Articoli":':
{ '"SADRIN 830","8 RAGGI DOPPI 8TX 8RX - ALTEZZA 3,00 MT","232.0"': '' } }
SyntaxError: Unexpected end of JSON input at JSON.parse (<anonymous>)
Java代碼:
JSONObject obj = new JSONObject();
obj.put("Note", note);
JSONArray objArticoli=new JSONArray();
for(int i=0; i<=Articoli.size(); i++)
{
objArticoli.put(0,""+Articoli.get(i).GetCodice());
objArticoli.put(1,""+Articoli.get(i).GetDescrizione());
objArticoli.put(2,""+Articoli.get(i).GetPrezzo());
}
obj.put("Articoli",objArticoli);
try {
Database db = new Database();
ret = db.RequestArray("/rapportini/generarapportino", obj,true);
} catch (Exception ex) {
System.out.println("\n Error"+ex);
}
Node.js的:
app.post("/rapportini/generarapportino",async function(request,response)
{
try
{
console.log(request.body);
var data = JSON.parse(Object.keys(request.body)[0]);
const ret=await RapportiniController.GeneraRapportino(data.Note);
response.setHeader('Content-Type', 'application/json');
response.send(JSON.stringify({ return: ret }));
}
catch(err){
console.log("Errore generazione rapportino ",err)
}
});
您將在for循環中覆蓋json數組項,因此最后您將僅具有最后一個Articoli的屬性,請嘗試為每個Articoli項目創建一個json對象並將其放入json數組中
JSONObject obj = new JSONObject();
obj.put("Note", note);
JSONArray objArticoli=new JSONArray();
for(int i=0; i<Articoli.size(); i++)
{
JSONObject articloliItem = new JSONObject();
articloliItem.put("Codice", Articoli.get(i).GetCodice());
articloliItem.put("Descrizione", Articoli.get(i).GetDescrizione());
articloliItem.put("Prezzo", Articoli.get(i).GetPrezzo());
objArticoli.put(articloliItem);
}
obj.put("Articoli",objArticoli);
這將導致具有以下結構的json對象
{
"Note": "some note",
"Articoli":[{
"Codice": "CodiceValue 1",
"Descrizione": "DescrizioneValue 1",
"Presso": "Prezzo 1"
},
{
"Codice": "CodiceValue 2",
"Descrizione": "DescrizioneValue 2",
"Presso": "Prezzo 2"
}]
}
在node.js代碼中,您嘗試僅解析請求json主體的第一個屬性。 通常,正確的方法是解析整個請求主體,然后使用結果對象。 你可以這樣嘗試嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.