当前位置: 首页 > 面试题库 >

使用字符串访问JSON或JS属性

秦权
2023-03-14
问题内容

我有一个像这样的JSON数组

_htaItems = [
    {"ID":1,
     "parentColumnSortID":"0",
     "description":"Precondition",
     "columnSortID":"1",
     "itemType":0},
    {"ID":2,
     "parentColumnSortID":"0",
     "description":"Precondition",
     "columnSortID":"1",
    "itemType":0}]

我想通过将ID,列名和新值传递给函数来更新它:

    function updateJSON(ID, columnName, newValue)
    {
        var i = 0;
        for (i = 0; i < _htaItems.length; i++)
        {
            if (_htaItems[i].ID == ID)
            {
                ?????
            }
        }
    }

我的问题是,如何更新值?我知道我可以做以下事情:

 _htaItems[x].description = 'New Value'

但是出于我的原因,列名是作为字符串传递的。


问题答案:

在JavaScript中,您可以使用文字符号访问对象属性:

the.answer = 42;

或使用带括号的表示法,使用字符串作为属性名称:

the["answer"] = 42;

这两个语句的作用 完全相同
,但是在第二个语句的情况下,由于括号中的内容是字符串,因此它可以是解析为字符串的任何表达式(或可以强制为一个)。所以所有这些都做同样的事情:

x = "answer";
the[x] = 42;

x = "ans";
y = "wer";
the[x + y] = 42;

function foo() {
    return "answer";
}
the[foo()] = 42;

answer将对象的属性设置the42

因此,如果description在您的示例中由于它是从其他地方传递给您而不能成为文字,则可以使用方括号表示法:

s = "description";
_htaItems[x][s] = 'New Value';


 类似资料:
  • 问题内容: 我正在尝试使用通过函数传递的变量访问JSON: 显然,这是行不通的,因为“类别”是我通过函数传递的内容,而不是属性的真实名称,但是我一直尝试尝试不同的可能性。提前致谢! 问题答案: 在JS中,是的同义词。 另外,您正在处理的是JavaScript对象,而不是JSON(尽管它可能 起源于 JSON ) *对于遇到这种情况并使用ES6的用户进行 *更新 ,现在可以在分配过程中使用变量: 作

  • 问题内容: 我有一个像下面这样的课程: 我想为源变量传递一个字符串,并访问同名的类成员。 我已经尝试过仅对函数有效(据我所知)以及具有extend和using ,但这也不起作用。做这个的最好方式是什么? 问题答案: 如果命名self的ANY属性(包括您的示例中的),将可以完美地工作。

  • 问题内容: 我将json字符串存储到mysql中的文本字段中。插入后,我想更新我的json字符串,并使用jackson json将mysql行ID添加到其中。 我有一个Json格式的Java字符串 我希望添加另一个K / V,而无需编写代码行。 终于有了这个: 我可以将String转换为JsonNode: 想要做这样的事情 然后在mysql中使用新的json字符串在我的文本字段中更新 我做不到 我

  • 我将json字符串存储到MySQL中的文本字段中。插入之后,我希望更新我的json字符串,并使用jackson json将mysql行id添加到其中。 我有一个Json格式的java字符串

  • 问题内容: 我有一个json字符串im可以通过简单的eval(string)转换为对象; 我正在尝试像这样访问它 我的问题是javascript不喜欢字段名中的#。是否可以访问它? 问题答案:

  • 使用Python我试图访问一个字段是字符串格式的CSV文件,其中有一个字典列表。 一行 NameError Traceback(最近的调用最后)在 () ---- C:\Program Data\Anaconda3\lib\site-包\熊猫\core\series.py在应用(自我,功能,convert_dtype,args,**kwds)3190 其他:3191值=self.astype(对象