【发布时间】:2017-10-30 14:25:33
【问题描述】:
我通过 ajax 调用从数据库中获取数据。 ajax 调用后,我将数据打印到控制台,如下所示:
没有 console.log(msg.users[i]); 的 JSON.stringify 输出是:
通过console.log(JSON.stringify(msg.users[i]));使用 JSON.stringify
输出(JSON 正确):
{"kid_name":"Henryk","lying_down":false,"address_of_residence":null,"birthdate":null,"kid_last_name":"Kania","kid_id":1047,"group_name":"Klasa 0","group_id":243,"start_date":"2017-03-01","nazwa_diety":"Standardowa","extra_information":"","account":null,"kid_account":null,"diet_description":"","diet_school":217,"payment_day":1,"payments_hours":2,"card_numbers":null,"last_name":"Kania","name":"Henryk","id_kid":1047,"id_group":243,"activities_yearly_payments":false}
然后直接在将此用户打印到控制台后,我将一个元素附加到容器中,例如:
$('#container').append('<li data-kid='+JSON.stringify(msg.users[i])+'>Test</li>');
将此用户附加到数据属性后,出现问题 - 我不知道具体是什么,但有些东西破坏了 JSON 对象并在 group_name 字段之后添加引号:
有趣的事实是,并不是每个用户都会出现这个问题。无论如何,登录到控制台的 JSON 对象是正确的,因此在附加带有属性的元素后,一切都应该正常工作。
【问题讨论】:
-
您不需要 JSON.stringify 来记录 JSON 数据或将 JSON 数据放入 DOM 元素中。你可以在没有 stringify 的情况下尝试同样的方法吗? (json 字符串在属性周围有引号,但 js 对象没有!)
-
但是当我删除 data-kid 属性中的 json stringify 时,我看到以下数据:
data-kid="[object" object] -
@Kokodoko 您可能不需要将其字符串化以控制台记录数据,但您肯定需要将其存储在 DOM 的(字符串)属性中。
标签: javascript jquery json