【发布时间】:2016-11-09 22:26:06
【问题描述】:
我正在使用关联数组来创建 json 对象,将它们序列化并发送给第三方:
var MSG = {}
MSG["SESSION_START"] = 0x0000;
MSG["DONE"] = 0x0001;
var session_id = gen_rand_no();
var msg_tuple = {MSG["SESSION_START"] : session_id};
var json_msg_tuple = JSON.stringify(msg_tuple);
send(json_msg_tuple);
该方通常会以序列化 JSON 对象的形式回复确认消息:
var serialized_json = recv();
var json_obj = JSON.parse(serialized_json);
如何检查 JSON 对象中的第一个元素是否对应 MSG["DONE"] 值?
在this 问题的答案中,假设 JSON 对象具有一组给定的属性,直到嵌套的属性被迭代。
【问题讨论】:
-
我认为
{MSG["SESSION_START"] : session_id}不是有效的 JavaScript。 -
首先,您只是在使用 JavaScript 对象。 JSON 是一种字符串格式。正因为如此,我认为你想多了。只需设置一个断点并检查
json_obj上面的内容。您可能只使用json_obj['DONE']... -
JavaScript 本身没有“元组”。您也可以使用
MSG.SESSION_START代替MSG["SESSION_START"]。 -
为了使用 变量 值作为键,您需要:
var msg_tuple = {}; msg_tuple[MSG["SESSION_START"]] = session_id;。然而,在 ES6 中,你可以这样做:var msg_tuple = {[MSG["SESSION_START"]]: session_id};
标签: javascript json