Java之JSONObject存取值以及和HashMap区别, optString()和getString()区别和他的遍历方式

结论:

1.JSONObjectHashMap用法上是一样的,用put()方法存对于的Key-values键值对,取可用optString(key)getString(key),get(key),存入的是什么类型,取出来的时候就是什么类型

2**.optString()在没找到key的时候返回空,而**getString()为找到的时候会抛出错误

3.遍历: 可以用Iterator实现便利,方法和map一样

package Test;

import java.util.HashMap;
import java.util.Iterator;

import org.json.JSONObject;
public class JsonObjectTest {
    /**
     * { "err_no":500, "err_msg":"notsupport.", "sn":"abcdefgh", "idx":1 }
     */
    public static void main(String[] args) {
        HashMap map = new HashMap();
        map.put("err_no", 500);
        map.put("err_msg", "notsupport.");
        String result1 = (String) map.get("err_msg");
        System.out.println("map直接打印结果:" + map);
        System.out.println("maptoString打印:" + map.toString());
        System.out.println("map取值err_msg打印:" + result1);

        JSONObject jsonObject = new JSONObject();
        jsonObject.put("err_no", 500);
        jsonObject.put("err_msg", "notsupport.");
        jsonObject.put("idx", 1);
        String result2 = jsonObject.optString("err_msg");
        String result3 = jsonObject.getString("err_msg");
        String result4 = jsonObject.optString("err_no1");
        // String result5 = jsonObject.getString("err_no1");

        // System.out.println("result5: "+result5); 打印报错
        System.out.println("直接打印结果:" + jsonObject);
        System.out.println("toString打印结果:" + jsonObject.toString());
        System.out.println("result2结果: " + result2);
        System.out.println("result3结果: " + result3);
        System.out.println("result4结果: " + result4);

        System.out.println(jsonObject.get("idx"));

        Iterator iter = jsonObject.keys();
        while(iter.hasNext()) {
            String key=(String)iter.next();
            Object values=jsonObject.get(key);
        }

    }

}

猜你喜欢

转载自blog.csdn.net/weixin_39841821/article/details/79949916