2013-11-15 3 views
0

В ситуации, когда у меня есть список строк и JSON. Я хочу проверить, содержит ли JSON все ключи, которые существуют в списке. Если какой-либо из ключей не существует в списке, то я хочу удалить эту пару с определенным ключом: значение из самого JSON. Как я могу это достичь?Как проверить, есть ли у JSON ключи из списка строк

позволяет сказать, что у меня есть список ['name','password'] и JSON в {"name":"veeru","pass":"123","age":"23"}, сейчас, поскольку возраст не существует в списке я хочу, чтобы удалить эту запись из самого моего JSON. Как я могу это достичь?

+0

Что вы пробовали? –

+0

обратитесь к [this] (http://stackoverflow.com/a/12510289/1283215) –

+0

Разберите json с помощью некоторого анализатора JSON, получите значение ключа, сравнив его со списком, и постройте новый json со значениями, найденными в список –

ответ

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'} 
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); 
    } 
} 
Смежные вопросы