我在打字稿中输入了数据结构,这是一个示例:
{"username":"xxxxxxxxxxx",
"session":"xxxxxxxxxxx",
"items":[{
"id_item": 1,
"identificador": "Italia Ejemplo 2 RESTTEST",
"proyecto": 1,
"tipo_formulario": 1,
"gps_points": [{
"id_gps": 26,
"fechaAlta": "2018-09-05 11:58:31",
"fechaMod": "2018-09-07 07:53:08",
"accuracy": "1.555",
"provider": "net",
"latitud": "1.555",
"longitud": "1.235",
"item": 29
}],
"archivos": [],
"fotografias": [],
"datos": [
{
"id_dato": 14,
"valor": "texto de ejemplo",
"item": 1,
"campo": 1,
"formulario": 1,
"errores": null,
"fechaAlta": "2018-09-05 12:01:44",
"fechaMod": "2018-09-07 07:32:22"
}],
"descripcion": "formulario de italia",
"fechaAlta": "2018-09-04 02:00:00",
"fechaMod": "2018-09-05 15:24:44",
"propietario": 1
}]
}
但是当运行JSON.stringify时,您有:
{"username":"xxxx", "session":"xxxxxxx", "items":[]}
该方法忽略项目数组,并向服务器发送空信息。
感谢大家的阅读和回复。
这是代码片段:
uploadItems(user_id, username:string, session:session)
{
let upload = {
username:username,
session:session,
items:[]}
let query = "SELECT * FROM item WHERE modificado = 1 AND proyecto
IN
\
(SELECT id_proyecto FROM proyecto WHERE usuario = " + user_id +
");"
this.db.executeSql(query,[])
.then((res:any) => {
console.log(res)
for(let i = 0; i < res.rows.length; i ++)
{
let entry = {
id_item:res.rows.item(i).remote_id_item,
identificador:res.rows.item(i).identificador,
proyecto:res.rows.item(i).proyecto,
tipo_formulario:res.rows.item(i).formulario,
descripcion:res.rows.item(i).descripcion,
fechaAlta:res.rows.item(i).fecha_alta,
fechaMod:res.rows.item(i).fecha_mod,
propietario:res.rows.item(i).propietario,
gps_points:[],
datos:[]
}
entry.gps_points.push(this.getGpsPointbyItem(res.rows.item(i).id_item))
this.getDatabyItemForm(res.rows.item(i).id_item, res.rows.item(i).formulario)
.then((dataRes:any) => {
for(let j = 0; j < dataRes.rows.length; j++)
{
entry.datos.push(dataRes.rows.item(j))
}
upload.items.push(entry)
})
.catch(err => console.error(err))
}
this.rest.upload(JSON.stringify(upload))
//This code generates data structure whith same structure what i
write in the post.
})
.catch(err => console.error(err))
}
我尝试console.log(upload),它显示正确的输出,但是当我 使用json.stringify我有一个字符串,其中“项目”字段为空。
注意:它是一个具有深度3上传的数据结构-> items(array)-> datos(数组)。