【问题标题】:How to check if the JSON has keys from the list of strings如何检查 JSON 是否具有字符串列表中的键
【发布时间】:2013-11-15 06:23:10
【问题描述】:

我的情况是,我有一个字符串列表和一个 JSON。我想检查 JSON 是否包含列表中存在的所有键。如果列表中不存在任何键,那么我想从 JSON 本身中删除该特定键:值对。我怎样才能做到这一点?

假设我有一个列表['name','password'],并且 JSON 为 {"name":"veeru","pass":"123","age":"23"} , 现在由于列表中不存在年龄,我想从我的 JSON 本身中删除该条目。我怎样才能做到这一点?

【问题讨论】:

  • 参考this
  • 使用一些 JSON 解析器解析 json,获取键值与列表进行比较,并使用列表中找到的值构造一个新的 json

标签: java 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'}

【讨论】:

    【解决方案2】:

    由于问题标记为 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 );
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-01-22
      • 2019-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-12
      • 2013-02-13
      • 1970-01-01
      • 2015-05-31
      相关资源
      最近更新 更多