javajson(javajson字符串转json对象)

发布时间:2022-11-09

本文目录一览:

  1. 请问Java中json是什么?
  2. java 如何解析JSON
  3. java开发,json是干什么的
  4. java怎么读取json格式的数据
  5. Java解析json数据
  6. java中把json怎么转换成数组?

请问Java中json是什么?

一 简介:

JSON(JavaScript对象符号)是一种轻量级的数据交换格式。这是很容易为人类所读取和写入。这是易于机器解析和生成。它是基于JavaScript编程语言的一个子集,标准ECMA-262第三版 - 1999年12月。JSON是一个完全独立于语言的文本格式,但使用C家族的语言,包括C,C++,C#,Java中的JavaScript,Perl的,Python中,和许多其他程序员所熟悉的约定。这些特性使JSON成为理想的数据交换语言。他和map很类似,都是以 键/值 对存放的。

java 如何解析JSON

一、JSON(JavaScriptObjectNotation)一种简单的数据格式,比xml更轻巧。Json建构于两种结构:

  1. “名称/值”对的集合(Acollectionofname/valuepairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hashtable),有键列表(keyedlist),或者关联数组(associativearray)。如:{"name":"jackson","age":100}
  2. 值的有序列表(Anorderedlistofvalues)。在大部分语言中,它被理解为数组(array)如:{"students":[{"name":"jackson","age":100},{"name":"michael","age":51}]} 二、java解析JSON步骤 A、服务器端将数据转换成json字符串 首先、服务器端项目要导入json的jar包和json所依赖的jar包至builtPath路径下(这些可以到JSON-lib官网下载:) 然后将数据转为json字符串,核心函数是:
public static String createJsonString(String key, Object value) {
    JSONObject jsonObject = new JSONObject();
    jsonObject.put(key, value);
    return jsonObject.toString();
}

B、客户端将json字符串转换为相应的javaBean

  1. 客户端获取json字符串(因为android项目中已经集成了json的jar包所以这里无需导入)
public class HttpUtil {
    public static String getJsonContent(String urlStr) {
        try {
            // 获取HttpURLConnection连接对象
            URL url = new URL(urlStr);
            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
            // 设置连接属性
            httpConn.setConnectTimeout(3000);
            httpConn.setDoInput(true);
            httpConn.setRequestMethod("GET");
            // 获取相应码
            int respCode = httpConn.getResponseCode();
            if (respCode == 200) {
                return ConvertStream2Json(httpConn.getInputStream());
            }
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return "";
    }
    private static String ConvertStream2Json(InputStream inputStream) {
        String jsonStr = "";
        // ByteArrayOutputStream相当于内存输出流
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int len = 0;
        // 将输入流转移到内存输出流中
        try {
            while ((len = inputStream.read(buffer, 0, buffer.length)) != -1) {
                out.write(buffer, 0, len);
            }
            // 将内存流转换为字符串
            jsonStr = new String(out.toByteArray());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return jsonStr;
    }
}
  1. 获取javaBean
public static Person getPerson(String jsonStr) {
    Person person = new Person();
    try {
        // 将json字符串转换为json对象
        JSONObject jsonObj = new JSONObject(jsonStr);
        // 得到指定json key对象的value对象
        JSONObject personObj = jsonObj.getJSONObject("person");
        // 获取之对象的所有属性
        person.setId(personObj.getInt("id"));
        person.setName(personObj.getString("name"));
        person.setAddress(personObj.getString("address"));
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return person;
}
public static List<Person> getPersons(String jsonStr) {
    List<Person> list = new ArrayList<>();
    JSONObject jsonObj;
    try {
        // 将json字符串转换为json对象
        jsonObj = new JSONObject(jsonStr);
        // 得到指定json key对象的value对象
        JSONArray personList = jsonObj.getJSONArray("persons");
        // 遍历jsonArray
        for (int i = 0; i < personList.length(); i++) {
            // 获取每一个json对象
            JSONObject jsonItem = personList.getJSONObject(i);
            // 获取每一个json对象的值
            Person person = new Person();
            person.setId(jsonItem.getInt("id"));
            person.setName(jsonItem.getString("name"));
            person.setAddress(jsonItem.getString("address"));
            list.add(person);
        }
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return list;
}

java开发,json是干什么的

json其实就是封装了一种数据格式,它使用了自己定义的标准。主要用来在服务器和客户端的浏览器进行数据交换。因为我们常用的表单形式提交数据,有诸多的不便,json解决了一些问题。学习Java开发推荐千锋教育,千锋教育利用技术优势精心打造了AI教辅系统,依托技术领域热门的人工智能技术,科技辅学,有力护航学员成长。 java开发前景好,很多软件的开发都离不开Java,因此其程序员的数量最多。据官方数据统计,在全球编程语言工程师的数量上,Java语言以900万的程序员数量位居首位。Java在我们的生活中无处不在。只要我们能接触到互联网,我们就不能没有Java。目前,世界上有数十亿设备正在运行Java。从互联网电子商务到金融行业的服务器应用,从APP到企事业单位的OA系统,从大数据到桌面应用等,Java广泛应用于各个领域。 想要了解更多关于java开发的相关信息,推荐咨询千锋教育。千锋企合作部整合大量企业客户资源,紧抓当下企业需求,将技术和项目完美结合千锋课程体系,力求培养更多优质人才服务企业,不断提升学员竞争力,链接企业用人标准的培训课程及实战项目,让企业招聘用人的技术要求与千锋学员的技术充分对接。近年来不断引进阿里钉钉小程序技术、红帽认证、腾讯云、亚马逊等,通过与企业的深度融合实现千锋教研和就业服务的迭代升级,专业性值得信赖。

java怎么读取json格式的数据

java可以使用JSONObject和JSONArray来操作json对象和json数组,具体用法如下

  1. java对象与json串转换: java对象—json串:
JSONObject JSONStr = JSONObject.fromObject(object);
String str = JSONStr.toString();

json串—java对象:

JSONObject jsonObject = JSONObject.fromObject(jsonString);
Object pojo = JSONObject.toBean(jsonObject, pojoClass);
  1. java数组对象与json串转换: java数组—json串:
JSONArray arrayStr = JSONArray.fromObject(List<?>);
String str = arrayStr.toString();

json串—java数组:

JSONArray array = JSONArray.fromObject(str);
List<?> list = JSONArray.toList(array, ?.class);

Java解析json数据

一、 JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。

Json建构于两种结构:

  1. “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组(associative array)。如:
{
    "name": "jackson",
    "age": 100
}
  1. 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)如:
{
    "students": [
        {"name": "jackson", "age": 100},
        {"name": "michael", "age": 51}
    ]
}

二、java解析JSON步骤 A、服务器端将数据转换成json字符串 首先、服务器端项目要导入json的jar包和json所依赖的jar包至builtPath路径下(这些可以到JSON-lib官网下载:) 然后将数据转为json字符串,核心函数是:

public static String createJsonString(String key, Object value) {
    JSONObject jsonObject = new JSONObject();
    jsonObject.put(key, value);
    return jsonObject.toString();
}

B、客户端将json字符串转换为相应的javaBean

  1. 客户端获取json字符串(因为android项目中已经集成了json的jar包所以这里无需导入)
public class HttpUtil {
    public static String getJsonContent(String urlStr) {
        try {
            // 获取HttpURLConnection连接对象
            URL url = new URL(urlStr);
            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
            // 设置连接属性
            httpConn.setConnectTimeout(3000);
            httpConn.setDoInput(true);
            httpConn.setRequestMethod("GET");
            // 获取相应码
            int respCode = httpConn.getResponseCode();
            if (respCode == 200) {
                return ConvertStream2Json(httpConn.getInputStream());
            }
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return "";
    }
    private static String ConvertStream2Json(InputStream inputStream) {
        String jsonStr = "";
        // ByteArrayOutputStream相当于内存输出流
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int len = 0;
        // 将输入流转移到内存输出流中
        try {
            while ((len = inputStream.read(buffer, 0, buffer.length)) != -1) {
                out.write(buffer, 0, len);
            }
            // 将内存流转换为字符串
            jsonStr = new String(out.toByteArray());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return jsonStr;
    }
}
  1. 获取javaBean
public static Person getPerson(String jsonStr) {
    Person person = new Person();
    try {
        // 将json字符串转换为json对象
        JSONObject jsonObj = new JSONObject(jsonStr);
        // 得到指定json key对象的value对象
        JSONObject personObj = jsonObj.getJSONObject("person");
        // 获取之对象的所有属性
        person.setId(personObj.getInt("id"));
        person.setName(personObj.getString("name"));
        person.setAddress(personObj.getString("address"));
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return person;
}
public static List<Person> getPersons(String jsonStr) {
    List<Person> list = new ArrayList<>();
    JSONObject jsonObj;
    try {
        // 将json字符串转换为json对象
        jsonObj = new JSONObject(jsonStr);
        // 得到指定json key对象的value对象
        JSONArray personList = jsonObj.getJSONArray("persons");
        // 遍历jsonArray
        for (int i = 0; i < personList.length(); i++) {
            // 获取每一个json对象
            JSONObject jsonItem = personList.getJSONObject(i);
            // 获取每一个json对象的值
            Person person = new Person();
            person.setId(jsonItem.getInt("id"));
            person.setName(jsonItem.getString("name"));
            person.setAddress(jsonItem.getString("address"));
            list.add(person);
        }
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return list;
}

java中把json怎么转换成数组?

使用原生的解析:

String json = "...";
// 遍历数组里的值,得到每个独立的对象,然后获取对应的值设置到声明好的对象中,最终创建对象完成后添加到集合中,如我自己代码里的片段:
for (int j = 0; j < array.length(); j++) {
    obj = array.getJSONObject(j);
    Data data = new Data();
    mDataList.add(data);
}

数组声明 在数组的声明格式里,“数据类型”是声明数组元素的数据类型,可以是java语言中任意的数据类型,包括简单类型和结构类型。“数组名”是用来统一这些相同数据类型的名称,其命名规则和变量的命名规则相同。 数组声明之后,接下来便是要分配数组所需要的内存,这时必须用运算符new,其中“个数”是告诉编译器,所声明的数组要存放多少个元素,所以new运算符是通知编译器根据括号里的个数,在内存中分配一块空间供该数组使用。利用new运算符为数组元素分配内存空间的方式称为动态分配方式。 以上内容参考:百度百科-数组