0

如何拆分 json 对象并根据 ID 更新它们。我听说要使用 stringify!以及如何实现更新对象的功能?

<input type="text" value="{"id":"1","price":"30.00","edit":0},
{"id":"2","price":"8.00","edit":0}" id="json" />

**code:**
var json = $('#json').val().split(',');

for (var i = 0; i < json.length; i++){
  alert(json);
}
//(seems its splitting every comma it finds).

我正在尝试存档:

  • 拆分对象 {"id":"1","price":"30.00","edit":0}, {"id":"2","price":"8.00","edit":0}
  • 更新取决于所选 ID。
  • 然后保存并返回相同的对象格式但具有更新的值。

希望我的问题足够清楚:)

4

3 回答 3

3

而不是字符串拆分和解析..尝试使用$.parseJSON如下所示,

$.parseJSON("[" + $('#json').val() + "]");

演示:http: //jsfiddle.net/QUTu9/

还修复了 html 中的引号,如下所示,

<input type="text" value='{"id":"1","price":"30.00","edit":0},
{"id":"2","price":"8.00","edit":0}' id="json" />
于 2012-10-02T17:04:55.990 回答
0

这将不起作用,因为您有报价问题。最简单的解决方案是用单引号括起来。

<input type="text" value='{"id":"1","price":"30.00","edit":0},{"id":"2","price":"8.00","edit":0}' id="json" />

不要拆分它,使用JSON.parse

于 2012-10-02T17:04:44.613 回答
0

首先你的语法看起来有点乱,用单引号包围你的价值

value='{"id":"1","price":"30.00","edit":0}, {"id":"2","price":"8.00","edit":0}'
于 2012-10-02T17:04:49.700 回答