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

如何重命名JSON密钥

卫仲卿
2023-03-14
问题内容

我有一个具有以下内容的JSON对象:

[
  {
    "_id":"5078c3a803ff4197dc81fbfb",
    "email":"user1@gmail.com",
    "image":"some_image_url",
    "name":"Name 1"
  },
  {
    "_id":"5078c3a803ff4197dc81fbfc",
    "email":"user2@gmail.com",
    "image":"some_image_url",
    "name":"Name 2"
  }
]

我想将“ _id”键更改为“ id”,这样它将变成

[
  {
    "id":"5078c3a803ff4197dc81fbfb",
    "email":"user1@gmail.com",
    "image":"some_image_url",
    "name":"Name 1"
  },
  {
    "id":"5078c3a803ff4197dc81fbfc",
    "email":"user2@gmail.com",
    "image":"some_image_url",
    "name":"Name 2"
  }
]

如何使用Javascript,jQuery或Ruby,Rails做到这一点?

谢谢。


问题答案:
var json = '[{"_id":"5078c3a803ff4197dc81fbfb","email":"user1@gmail.com","image":"some_image_url","name":"Name 1"},{"_id":"5078c3a803ff4197dc81fbfc","email":"user2@gmail.com","image":"some_image_url","name":"Name 2"}]';

var obj = JSON.parse(json)[0];
obj.id = obj._id;
delete obj._id;

json = JSON.stringify([obj]);

这将json更改为:

[{"email":"user1@gmail.com","image":"some_image_url","name":"Name 1","id":"5078c3a803ff4197dc81fbfb"}]

由于订单在JSON中的名称/值对中没有意义,因此与您想要的结果相同。



 类似资料:
  • 问题内容: 我正在使用Jackson对对象列表进行JSON序列化。 这是我得到的: 但是我想要这个: 下面是我的处理方法: 接口: 实现类: JSon序列化: 测试: 这是我得到的: 但是我想要这个: 还是我错过了什么?我为此使用杰克逊1.9.12。欢迎在这方面提供任何帮助。 问题答案: 好吧,默认情况下,杰克逊在尝试确定要为包装值显示的根名称时使用两个注释之一- 或。它希望此批注位于要序列化的类

  • 我试图将我的应用程序上传到Play Store,但谷歌不允许应用程序包含名称为“example.xxxxx”的软件包。我的问题是,我的包叫做“com.example.mainActivity”,我已经尝试重命名它了,但我对IntelliJ所能做的就是将部件重命名为“mainActivity”。“榜样”依旧。在尝试通过进入清单并用不同的名称重构它来更改示例之后,IntelliJ刚刚用新名称创建了一个

  • 我有DynamoDB表,我想重命名它。似乎没有任何重命名表的命令或选项。以前有人给桌子重新命名过吗?

  • 问题内容: 我正在寻找一种重命名Hashmap密钥的方法,但是我不知道在Java中是否可行。 问题答案: 尝试删除该元素,然后使用新名称再次放置它。假设地图中的键是,则可以通过以下方式实现:

  • 在迁移等所有艰难的工作之后,只要意识到如果需要使用CNAME(例如media.abc.com)来服务内容。bucket名称需要以media.abc.com/s3/Amazon.com开头,以确保它完美地工作。 只需意识到S3不允许从控制台直接重命名。 有什么办法可以解决这个问题吗?

  • 在我的一个DynamoDb表中,我有一个名为“status”的列/键,它原来是一个保留关键字。不幸的是,不能删除整个表并重新初始化它。如何重命名密钥? 以下是导致异常的Lambda代码: 这里有一个例外: 2016-06-14 18:47:24UTC 2 ok错误:在调用UpdateItem操作时发生错误(ValidationExc0019):无效的Update表达式:属性名称是保留关键字;保留关