将json转换为javascript对象
我正在尝试从python发送一个dict:将json转换为javascript对象,javascript,json,object,transform,Javascript,Json,Object,Transform,我正在尝试从python发送一个dict: def toJsonCustom(自我): ajson=[] 阿杰森({ “id”:self.id, “数据”:self.data }) 返回json.dumps( ajson,默认值=lambda obj:obj.uu dict_uuu,分隔符=(',',':'),缩进=4, ) 异步def curl(url、数据): 与aiohttp.ClientSession()作为会话异步: 以session.post(url,json={'datajson
def toJsonCustom(自我):
ajson=[]
阿杰森({
“id”:self.id,
“数据”:self.data
})
返回json.dumps(
ajson,默认值=lambda obj:obj.uu dict_uuu,分隔符=(',',':'),缩进=4,
)
异步def curl(url、数据):
与aiohttp.ClientSession()作为会话异步:
以session.post(url,json={'datajson':data})作为响应的异步:
打印(报告(答复))
chunk=wait response.content.read()
打印('已下载:%s'%len(区块))
#输出JSON:
{“datajson”:“[\n{\n\“id\”:\“test\”,\n\“data\”:\“test\”\n}\n]“}”
当尝试将此json的输出从javascript转换为对象时,我没有定义
const data = JSON.parse(get(props, 'websocket.data', null)) || get(state, 'websocket.data') || 'No data';
console.log('Object json: ', (data));
# output: {"datajson": "[ n { n "id ": "test " n "data ": "test " n } n]"}
console.log('Object json: ', (data.id));
# output:undefined
如何以正确的方式将json转换为javascript对象
谢谢,我认为您需要
data.datajson[0].id
似乎需要两次解析JSON字符串才能获得所需的对象:
- 第一次解析为您提供了对象
,请注意{“datajson”:“[{…”}
属性的值是一个字符串datajson
- 因此,让我们再次解析上面的对象
nestedData=JSON.parse(data.datajson)
console.log(数据)
是个好主意。接下来尝试console.log('datajson',data.datajson)
(数据周围不需要括号)。如果未定义,则需要计算对象的类型。尝试typeof data
,typeof data.datajson
:console.log('datajson',data.datajson)返回未定义的。当json再次解析时,正如@vassiliskrikonis所说,我得到:意外的标记或json中的位置0什么是console.log(数据)
console.log(数据类型)
console.log(数据):{“datajson”:“[\n{\n\“id\”:“test\”,\n\“value\:“test\”:“test\”\n}\n}\n]}console.log如何(数据类型):字符串console.log('datajson',data.datajson):datajson undefined。JSON似乎构建得很好。我已经检查了来自的数据输出,我不明白为什么我会得到undefined…正如我在上面的评论中看到的那样,我得到了:意外标记或JSON中的位置0,如果数据。datajson
返回undefined,那么问题完全是另外一回事。尝试制作一个可复制的sc正如Jabberwocky评论的那样,我们可以帮助您:)