在某种情况下,我有一个字符串列表和一个JSON。我想检查JSON是否包含列表中存在的所有密钥。如果列表中不存在任何键,那么我想从JSON本身中删除该特定键:值对。我怎样才能做到这一点?
假设我有一个列表['name','password']
,并且
JSON为{"name":"veeru","pass":"123","age":"23"}
,
现在因为年龄在列表中不存在我想从我的JSON本身中删除该条目。我怎样才能做到这一点?
答案 0 :(得分:1)
我只想制作一个新物品。
var obj = {"name":"veeru","pass":"123","age":"23"};
var strippedObj = {};
['name', 'password'].forEach(function(key) {
if(key in obj) {
strippedObj[key] = obj[key];
} else {
throw 'key ' + key + ' not found';
}
});
console.log(strippedObject); //{name:'verru', pass:'123'}
答案 1 :(得分:0)
由于问题标记为java,您可能希望将json数据转换为java域对象。
可以使用jackson和以下代码完成此操作:
public class JsonSample
{
static class User
{
String name;
char[] pass;
public String getName()
{
return name;
}
public void setName( String name )
{
this.name = name;
}
public char[] getPass()
{
return pass;
}
public void setPass( char[] pass )
{
this.pass = pass;
}
}
public static void main( String[] args ) throws JsonParseException, JsonMappingException, IOException
{
String json = "{\"name\":\"veeru\",\"pass\":\"123\",\"age\":\"23\"}";
ObjectMapper mapper = new ObjectMapper();
mapper.configure( DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false );
User user = mapper.readValue( json, User.class );
System.out.println( user.name );
System.out.println( new String( user.pass ) );
mapper.writeValue( System.out, user );
}
}