-1

这是返回的 JSON

var errorsObject = JSON.parse('{ "fieldErrors": {"name":["You must enter your name1"],"name":["You must enter your name2"],"age":["Only people ages 13 to 19 may take this quiz"]}}');

下面的代码第一个循环工作正常,我得到键名,如姓名、年龄等。在第二个循环中,想要获取从外循环中选择的键的值。Issue is errors.fieldErrors[key]. 我首先只需要循环带有名称的键并获得 2 个值。

$.each(errors.fieldErrors, function(key, val) {
    alert("key->" + key); //Fine
    $.each(errors.fieldErrors[key], function(index, val) {
        alert("key->" + key + ", val->" + val);
    });
});
4

1 回答 1

6

一个对象不能两次包含相同的键,因此您尝试做的事情是不可能的。解析 JSON 时,第一条消息会丢失。

但是,您的值是数组 - 为什么不更改返回 JSON 的代码以正确使用这些数组?假设它是由 PHP 代码创建的,你可以创建这样的 JSON 闻起来就像有人使用字符串函数来创建它,而不是json_encode- 另一件应该改变的事情......

于 2012-11-13T15:59:53.747 回答