gpt4 book ai didi

javascript - 从 Json 字符串中删除属性名称

转载 作者:行者123 更新时间:2023-12-03 08:26:08 28 4
gpt4 key购买 nike

嗨,假设我有一个 JSON 字符串,它表示包含 3 列 Id、Name、Status 的网格中的记录。我目前正在编写一些 JavaScript 逻辑,您可以通过在文本框中键入一些文本来过滤数据行。过滤器将应用于所有列中的数据。因此,如果我输入“James”,将返回下面的记录 1,如果我输入 None,将返回记录 1 和 2。问题是,如果我输入 Id、Name 或 Status(不是数据而是属性名称),则始终返回所有记录。

Record 1
{
Id: 1,
Name: "James",
Status: "None"
}

Record 2
{
Id: 2,
Name: "Paul",
Status: "None"
}

如何修改 JSON 字符串以便

{ Id: 2, Name: "Paul", Status: "None"}

将成为

{ 2, "Paul", "None"}

最佳答案

你的问题有点不清楚(我担心马蒂亚斯的编辑会让事情变得更糟)。

{ Id: 1, Name: "James", Status: "None"} 不是有效的 JSON 字符串,但它一个有效的 Javascript 对象。 JSON 字符串的值需要放在引号内。

如果您确实正在处理带有带引号的属性的 JSON 字符串,并且您只需要所请求的输出,则可以执行以下操作:

var person = '{ "Id": 1, "Name": "James", "Status": "None" }';
person = person.replace(/\s*"[^"]+"\s*:/g,"");
// > person = '{ 1, "James", "None" }'

如果您正在处理 Javascript 对象,获取不带属性名称的值的一种简单方法是执行以下操作:

var person = { Id: 1, Name: "James", Status: "None" };
person = Object.keys(person).map(function(k) { return person[k] }).join(',');
// > person = '1,James,None'

这两个选项都会为您提供一个字符串,您可以在其中搜索您感兴趣的值。在后一种情况下,您需要添加一些格式以将结果精确地转换为您所请求的内容,但是然后考虑到这个问题,我认为演示并不是什么大问题。

但是,如果可能的话,我认为如果您修改搜索算法来检查值而不是整个对象,您的代码将更符合您的意图。不过,您还没有向我们展示任何执行搜索的代码,因此我目前无法为此添加建议。

关于javascript - 从 Json 字符串中删除属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33542138/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com