使用JAVASCRIPT删除不需要的JSON数据
我不熟悉JSON和Javascript,不得不在CloudAntNoSQL中创建一个表。 因此,我从一家气象公司收集了JSON格式的天气数据,并将其发送给Cloudant,但JSON中有一些数据与我想要创建的表无关。 有没有办法从我使用javascript收到的JSON数据中删除元数据和列名“observation” 我拥有的JSON数据:使用JAVASCRIPT删除不需要的JSON数据,javascript,json,cloudant,nosql,Javascript,Json,Cloudant,Nosql,我不熟悉JSON和Javascript,不得不在CloudAntNoSQL中创建一个表。 因此,我从一家气象公司收集了JSON格式的天气数据,并将其发送给Cloudant,但JSON中有一些数据与我想要创建的表无关。 有没有办法从我使用javascript收到的JSON数据中删除元数据和列名“observation” 我拥有的JSON数据: { "metadata": { "language": "en-US", "transaction_id": "150376640280
{
"metadata": {
"language": "en-US",
"transaction_id": "1503766402801:1454518918",
"version": "1",
"latitude": 12.83,
"longitude": 77.68,
"expire_time_gmt": 1503771300,
"status_code": 200
},
"observation": {
"key": "43295",
"class": "observation",
"expire_time_gmt": 1503771300,
"obs_id": "43295",
"obs_name": "Bangalore",
"valid_time_gmt": 1503759600,
"day_ind": "N",
"temp": 75,
"wx_icon": 29
}
}
我想要的JSON数据
{
"_id": "2e5e0da1f82157dd6f5d381a4c9ff84e",
"_rev": "1-b7a92ae5f96b051f0add3b26a14543c2",
"key": "43295",
"class": "observation",
"expire_time_gmt": 1503771300,
"obs_id": "43295",
"obs_name": "Bangalore",
"valid_time_gmt": 1503759600,
"day_ind": "N",
"temp": 75,
"wx_icon": 29
}
多谢各位
编辑
我可以使用“delete data.metadata;”删除元数据,其中数据包含JSON,但最后我仍然无法删除“observation”单词和大括号。假设您的JSON被解析,您可以将所有嵌套对象中的所有键分配给一个新对象
var myData={
“元数据”:{
“语言”:“en US”,
“交易id”:“1503766402801:1454518918”,
“版本”:“1”,
“纬度”:12.83,
“经度”:77.68,
“到期时间”gmt:1503771300,
“状态代码”:200
},
“观察”:{
“密钥”:“43295”,
“课堂”:“观察”,
“到期时间”gmt:1503771300,
“obs_id”:“43295”,
“obs_名称”:“班加罗尔”,
“有效时间”gmt:1503759600,
“day_ind”:“N”,
“临时”:75,
“wx_图标”:29
}
}
myData=Object.keys(myData)
.reduce((res,key)=>Object.assign(res,myData[key]),{});
console.log(myData)代码>您可以在发送之前创建一个新的json对象。使用lodash应该是扩展应用程序的一个简单解决方案
// Assume result has your json data
var wantedJson = _.extend({}, result.observation, result.metadata);
如果您不担心元素的顺序,这是最简单的方法:
var结果={
“元数据”:{
“语言”:“en US”,
“交易id”:“1503766402801:1454518918”,
“版本”:“1”,
“纬度”:12.83,
“经度”:77.68,
“到期时间”gmt:1503771300,
“状态代码”:200
},
“观察”:{
“密钥”:“43295”,
“课堂”:“观察”,
“到期时间”gmt:1503771300,
“obs_id”:“43295”,
“obs_名称”:“班加罗尔”,
“有效时间”gmt:1503759600,
“day_ind”:“N”,
“临时”:75,
“wx_图标”:29
}
}
var myjson=result.observation;
myjson.\u id=“2E5E0DA1F8257DD6F5D381A4C9FF84E”,
myjson._rev=“1-b7a92ae5f96b051f0add3b26a14543c2”;
log(myjson)
尝试使用delete操作符我使用delete操作符删除元数据,但我仍然无法删除其他单词。好的,那么你想要观察对象的数据,在对象的根中?是的@RaghavGargThank。我一整天都在为这件事伤心。创造了奇迹。@JavaforAndroid:哦,等等,你只想拥有观测属性?然后就是myData=myData.observation
,添加您需要的任何额外键。