我必须将 json 从 java 发送到 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" 
            }] 
} 


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!