这是我的第一篇文章。我不喜欢在论坛上寻求帮助,但我别无选择。我花了很多天试图解决这个问题,但我还没找到任何解决方案。
我的所有问题都从一个返回此数据库的数据库查询开始。
{
"prod_format": "400 ml",
"prod_brand": "Marca",
"prod_image": "192.168.1.45/mini/1046332bb531ab3.jpg",
"prod_name": "Gel de baño o ducha",
"prod_pvp": 2.20,
"prod_shops": [
{
"prod_price": 2.29,
"prod_shop": {
"prod_shopID": 2,
"prod_shop_name": "Tienda",
"prod_shop_image": "192.168.1.45/shops/d4d4sw2.jpg"
}
},
{
"prod_price": 2.19,
"prod_shop": {
"prod_shopID": 5,
"prod_shop_name": "Tienda",
"prod_shop_image": "192.168.1.45/shops/g4hbe72.jpg"
}
}
]
}
我希望在这种情况下删除键的前缀, prod _ 和 shop _ 。
我无法手动执行此操作,因为这只是我使用的多个查询中的一个,并且此数据可以更改,我需要一个删除这些前缀的动态函数,以使用更多前缀和更多查询。
到目前为止,我一直在尝试:
NodeJS
是异步的并且是一个
永远不会结束的循环。总之,我想要一个函数,如果我把上面的对象,我得到这个代码。
{
"format": "400 ml",
"brand": "Marca",
"image": "http://192.168.1.45/mini/1046332bb531ab3.jpg",
"name": "Gel de baño o ducha",
"pvp": 2.20,
"shops": [
{
"price": 2.29,
"shop": {
"shopID": 2,
"name": "Tienda",
"image": "http://192.168.1.45/shops/d4d4sw2.jpg"
}
},
{
"price": 2.19,
"shop": {
"shopID": 5,
"name": "Tienda",
"image": "http://192.168.1.45/shops/g4hbe72.jpg"
}
}
]
}
PS:
我无法编辑原始对象,因为它来自elasticsearch
,我无法编辑对象键。
提前致谢,我希望有人能帮助我。
答案 0 :(得分:2)
为什么不简单地将Json数据视为字符串,然后将“"_prod
”替换为“"
”?这将删除此前缀的所有出现。
myJsonString.replace('"_prod', '"');
更新:如果你的值可能包含你的前缀,你最好使用正则表达式,只是为了确保你只更改键。