zoukankan      html  css  js  c++  java
  • JAVA中的JSON

    1、在服务器端的Servlet类中,可以使用如下方法收集数据并生成相应的JSON字符串

    //声明一个Hash对象并添加数据
    Map params = new HashMap();

    params.put("username", username);
    params.put("user_json", user);

    //声明JSONArray对象并输入JSON字符串
    JSONArray array = JSONArray.fromObject(params);
    put.println(array.toString());

    2、在WEB前端可以通过javascript直接对JSON字符串进行解析,在Android客户端的话,需要使用JSON类来解析字符串:

    //@description: 根据接收到的JSON字符串来解析字符串中所包含的数据和数据对象

    //接收到的JSON字符串
    String result = "[{"username": "your name", "user_json": {"username": "your name", "nickname": "your nickname"}}]";

    //根据字符串生成JSON对象
    JSONArray resultArray = new JSONArray(result);
    JSONObject resultObj = resultArray.optJSONObject(0);

    //获取数据项
    String username = resultObj.getString("username");

    //获取数据对象
    JSONObject user = resultObj.getJSONObject("user_json");
    String nickname = user.getString("nickname");

    3、数据类型之间的转换

    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;

    //别忘了添加上JSON包哦!
    public class StringToJSON {
    public static void main(String[] args) throws JSONException{

    System.out.println("abc");
    //定义JSON字符串
    String jsonStr = "{"id": 2," +
    " "title": "json title", " +
    ""config": {" +
    ""width": 34," +
    ""height": 35," +
    "}, "data": [" +
    ""JAVA", "JavaScript", "PHP"" +
    "]}";

    //转换成为JSONObject对象
    JSONObject jsonObj = JSONObject.fromObject(jsonStr);

    //从JSONObject对象中获取数据
    JavaBean bean = new JavaBean();

    //根据属性名称获取int型数据;
    bean.setId(jsonObj.getInt("id"));

    //根据属性名获取String数据;
    bean.setTitle(jsonObj.getString("title"));

    //根据属性名获取JSONObject类
    JSONObject config = jsonObj.getJSONObject("config");
    bean.setWidth(config.getInt("width"));
    bean.setHeight(config.getInt("height"));

    //根据属性名获取JSONArray数组
    JSONArray data = jsonObj.getJSONArray("data");
    for(int index = 0, length = data.length(); index < length; index++) {
    //这里在org.json.JSONArray对象中居然没有找到toArray方法,求各位网友给出解决办法啊!
    // bean.setLanguages(String[]);
    }
    }
    }

    class JavaBean{
    private int id ;
    private String title;
    private int width;
    private int height;
    private String[] languages;

    //这里省略了设置器和访问器
    }

    4、JSON对象转换为String字符串

    public static void main(String[] args) throws JSONException {

    //创建JSONObject对象
    JSONObject json = new JSONObject();

    //向json中添加数据
    json.put("username", "wanglihong");
    json.put("height", 12.5);
    json.put("age", 24);

    //创建JSONArray数组,并将json添加到数组
    JSONArray array = new JSONArray();
    array.put(json);

    //转换为字符串
    String jsonStr = array.toString();

    System.out.println(jsonStr);
    }

    最终输出结果为: [{"username":"wanglihong","height":12.5,"age":24}]  

    5、集合转换为JSONArray对象

    public static void main(String[] args)throws JSONException{
    //初始化ArrayList集合并添加数据
    List<String> list = new ArrayList<String>();
    list.add("username");
    list.add("age");
    list.add("sex");

    //初始化HashMap集合并添加数组
    Map map = new HashMap();
    map.put("bookname", "CSS3实战");
    map.put("price", 69.0);

    //初始化JSONArray对象,并添加数据
    JSONArray array = new JSONArray();
    array.put(list);
    array.put(map);

    //生成的JSON字符串为:[["username","age","sex"],{"price":69,"bookname":"CSS3实战"}]
    }

  • 相关阅读:
    奖学金 题解
    大数加法
    删除倒数第 N 个节点
    css中行内元素默认间隙解决方案
    vuecli3项目中优化lodash/moment使用
    谷歌浏览器input输入框自动填充数据
    vuecli3首页白屏优化
    highcharts开发交易所的行情走势图
    react-native使用flatlist上拉加载下拉刷新
    放大预览图片不失真
  • 原文地址:https://www.cnblogs.com/jassy/p/6761732.html
Copyright © 2011-2022 走看看