更新:2022-11-24 03:21 本文目录一览:java怎么把数据转成json 数组有两种方法实现: (1)直接转换: 创建JSONArray对象、JSONObject对象,通过put方法将其数据以键值对的形式填充,如例: //假如有一个Java实体类Person,包括以下属性:phone、sex、married、address。 ArrayListPerson persons = new ArrayListPerson(); for (int i = 0; i 3; i++) { persons.add(new Person("138******67", "女", true, "北京朝阳区"));//填充Java实体类集合 } JSONArray array = new JSONArray();// Json格式的数组形式 JSONObject obj;//json格式的单个对象形式 for (int i = 0; i persons.size(); i++) { obj = new JSONObject(); //依次填充每一个Java实体对象 try { obj.put("phone", persons.get(i).getPhone());//json通过put方式以key-value形式填充 obj.put("sex", persons.get(i).getSex()); obj.put("married", persons.get(i).getMarried()); obj.put("address", persons.get(i).getAddress()); array.put(obj);//将JSONObject添加入JSONArray } catch (JSONException e) { e.printStackTrace(); } } (2)通过GSON工具实现: 只需要创建GSON对象,通过toJson方法转换即可。如例: //模拟Java数据 Person person = new Person("敏敏", 23, "女", "北京市海淀区"); //创建GSON对象 Gson gson = new Gson(); //调用toJson方法即可转换为字符串的json格式 String json = gson.toJson(person); java 中JSON数据如何写没懂你要问什么,是问JSON的格式么? 我就简单地介绍下json格式: 按照最简单的形式,可以用下面这样的 JSON 表示"名称 / 值对": { "firstName": "Tom" } 这个示例非常基本,而且实际上比等效的纯文本"名称 / 值对"占用更多的空间: firstName=Tom 但是,当将多个"名称 / 值对"串在一起时,JSON 就会体现出它的价值了。首先,可以创建包含多个"名称 / 值对"的 记录,比如: { "firstName": "Tom", "lastName":"Lin", "email": "aaa@aa.com" } JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。 如何从JSON数据创建Java类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 } 2、值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)如: { “students”: [ {“name”:”jackson”,“age”:100}, {“name”:”michael”,”age”:51} ] } 补充:json是做交换格式,查询效率非常低,如果做存储的检索格式就误用了。 就是说“聊天信息的保存用json应该可以吧”还不如你之前的mysql数据库。 json用在客户端往服务端发送的通讯交换数据的格式上。服务端收到后转为数据库中或内存中存放。 java如何创建Json文件?如果聊天数据的结构是固定的或变化不大的。 就直接“编排”json字符串。 为要输出的对象增加一个String toJSON()方法 StringBuilder b=new StringBuilder(); b.append("{ name:\""); b.append(username); b.append("\"}"); 依次类推 return b.toString(); 适合绝大多数情况。 补充:json是做交换格式,查询效率非常低,如果做存储的检索格式就误用了。 就是说“聊天信息的保存用json应该可以吧”还不如你之前的mysql数据库。 json用在客户端往服务端发送的通讯交换数据的格式上。服务端收到后转为数据库中或内存中存放。 如何使用java创建json对象//将数据转换为Json public static String createJsonString(String key, Object value) { JSONObject jsonObject = new JSONObject(); jsonObject.put(key, value); return jsonObject.toString(); } 求java合并json数据的代码我想了一下,但是得有一个前提,就是第一个json数组的size必须和第二个json数组的size相同,并且一一对应,否则将造成数组溢出。 如果是基于上面这个前提,那么实现的方法就简单了。 操作json对象,其实标准的方法是将实体类转换成json后再操作,我这里的话为了便捷直接使用谷歌的Gson来创建JsonObject了,其他的json依赖还有阿里巴巴的FastJson等等,看你平时用什么习惯。 引入Gson依赖: dependency groupIdcom.google.code.gson/groupId artifactIdgson/artifactId version2.8.0/version /dependency 实现代码: public class Main { public static void main(String[] args) { JsonArray jsonArray1 = new JsonArray(); JsonObject json11 = new JsonObject(); json11.addProperty("数据1", "0000"); json11.addProperty("数据2", "1111"); JsonObject json12 = new JsonObject(); json12.addProperty("数据1", "0000"); json12.addProperty("数据2", "1111"); JsonObject json13 = new JsonObject(); json13.addProperty("数据1", "0000"); json13.addProperty("数据2", "1111"); jsonArray1.add(json11); jsonArray1.add(json12); jsonArray1.add(json13); System.out.println(jsonArray1); JsonArray jsonArray2 = new JsonArray(); JsonObject json21 = new JsonObject(); json21.addProperty("数据3", "6666"); JsonObject json22 = new JsonObject(); json22.addProperty("数据3", "6666"); JsonObject json23 = new JsonObject(); json23.addProperty("数据3", "6666"); jsonArray2.add(json21); jsonArray2.add(json22); jsonArray2.add(json23); System.out.println(jsonArray2); //遍历json数组,按位取出对象 for (int i = 0; i jsonArray1.size(); i++) { JsonObject json1 = jsonArray1.get(i).getAsJsonObject(); JsonObject json3 = jsonArray2.get(i).getAsJsonObject(); //遍历数据3内容,通过Entry获取数据3的key和value,并合并到数据1中 for (Map.EntryString, JsonElement item : json3.entrySet()) { json1.addProperty(item.getKey(), item.getValue().getAsString()); } } System.out.println(jsonArray1); } } 整体思路为:遍历两个json数组,按位进行合并操作。合并时,遍历数据3的jsonObject,获取其key和value,并将其合并到数据1中即可。 运行结果: |
|