【问题标题】:JSON dot notation to stringJSON点符号到字符串
【发布时间】:2013-03-29 17:19:58
【问题描述】:

我在我的 javascript 中使用 JSON,我正在尝试获取点符号表示的字符串值。

例如AAA.BBB[0].CCC.DDD[5].EEE = 123 JSON 点符号格式。

但我想将值 AAA.BBB[0].CCC.DDD[5].EEE 获取为字符串,以便我可以将其保存以供以后使用,以便我可以直接修改我的 JSON 代码。

在 Javascript 或 jQuery 中是否有可以返回字符串值表示的方法?

*编辑 我正在将 JSON 数据转换为列表结构,并且我想将 AAA.BBB[0].CCC.DDD[5].EEE 格式保存为 id,因此当用户修改该列表项的内容时,它会直接修改 JSON 数据。是否有更好的方法将位置保存在 id 中?

【问题讨论】:

  • 可能比adeno 的回答提供更多信息:json.org/js.html
  • 没有“JSON点符号格式”之类的东西。
  • 我正在将 JSON 数据转换为列表结构,并且我想将“AAA.BBB[0].CCC.DDD[5].EEE”格式保存为 id,以便用户修改该列表项的内容会直接修改 JSON 数据。是否有更好的方法将位置保存在 id 中?
  • “直接修改JSON数据”是什么意思? 究竟你在这里工作的是什么? JSON 是数据的字符串表示。你真的有一个 JSON 字符串,还是只有一个 JavaScript 对象?
  • 我有一个 JSON 对象,它本质上包含一个巨大的嵌套结构。目前它被输出为一个 html 列表。我想设置它,以便当单击特定节点然后被用户修改时,json代码在给定节点处更新(这是保存到li的id的位置)

标签: javascript jquery json syntax notation


【解决方案1】:

为什么不只存储对它内部部分的引用呢?将其存储为字符串没有多大意义。如果您只想以更短的方式访问它,存储引用更有意义。

var theCollection = AAA.BBB[0].CCC.DDD[5];
alert( theCollection.EEE );

然后可以将此引用存储在元素上并稍后检索。

$(someelement).data("jsonref",theCollection);
var data = $(someelement).data("jsonref");
alert(data.EEE);
data.EEE = "foobar";
data = $(someelement).data("jsonref");
alert( data.EEE );

【讨论】:

  • 这正是我要说的。这是最好的答案。
【解决方案2】:
var j_string = JSON.stringify(AAA.BBB[0].CCC.DDD[5].EEE);

如果您只想将值作为字符串返回,请执行以下操作:

var j_string_value = AAA.BBB[0].CCC.DDD[5].EEE.toString();

【讨论】:

    【解决方案3】:

    如果您希望在该路径上执行操作,您可能可以在字符串上使用eval,但eval 非常危险,因为它允许任意代码执行。如果你想对整个结构进行 JSON 字符串化,JSON.stringify 是大多数新浏览器的标准功能,Doug Crockford 对旧浏览器有自己的看法here。

    【讨论】:

    • 控制台允许任意代码执行,即使您的程序中没有包含任何eval 调用。
    猜你喜欢
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多