zoukankan      html  css  js  c++  java
  • 解析key值不确定的json数据

    遇到一个奇葩的需求,一段json的key值是动态的,并且这个key还是有作用的。这就要求在不知道key是多少的情况下去把这段json解析出来。

    我用到的方法是迭代器。具体代码如下

    JSONObject jsonObject = new JSONObject(jsonData);
    //通过迭代器获取这段json当中所有的key值
    Iterator keys = jsonObject.keys();
    //然后通过一个循环取出所有的key值
    while (keys.hasNext()){
    String key = String.valueOf(keys.next());
    //最后就可以通过刚刚得到的key值去解析后面的json了
    }

    得到key值以后,就可以用jsonobject来解析对应的值了。

    示例:

    /**
    	 * 获取汇率
    	 * 
    	 * @return
    	 * @throws Exception
    	 */
    	@SuppressWarnings("rawtypes")
    	public BigDecimal getRate() throws Exception {
    		String m_rateResult = HttpUtil.sendGet("https://x.szsing.com/v2/quote/price/m_rate");
    		JSONObject jsonObject = new JSONObject(m_rateResult);
    		JSONObject data = jsonObject.getJSONObject("data");
    		Iterator keys = data.keys();
    		String CNY = "0";
    		while (keys.hasNext()) {
    			String key = String.valueOf(keys.next());
    			JSONObject m_rate = data.getJSONObject(key);
    			CNY = m_rate.getString("CNY");
    			if (CNY.isEmpty() == false) {
    				break;
    			}
    		}
    		return new BigDecimal(CNY);
    	}
    
    	/**
    	 * 获取类别版本
    	 * 
    	 * @return
    	 * @throws Exception
    	 */
    	public String getCategoryVersion() throws Exception {
    		String m_custom = HttpUtil.sendGet("https://x.szsing.com/v2/quote/price/m_custom");
    		JSONObject jsonObject = new JSONObject(m_custom);
    		JSONObject data = jsonObject.getJSONObject("data");
    		JSONObject category = data.getJSONObject("category");
    		return category.getString("version");
    	}
    

      

  • 相关阅读:
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark RDD(Resilient Distributed Datasets)论文
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    【机器学习实战】第10章 K-Means(K-均值)聚类算法
    [译]flexbox全揭秘
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/10487255.html
Copyright © 2011-2022 走看看