键/值 对存放的。
JSON 使用须要用的JAR包:
commons-lang.jar
commons-beanutils.jar
commons-collections.jar
commons-logging.jar
ezmorph.jar
json-lib-2.2.2-jdk15.jar
使用JSON中的JSONObject:
1.创建一个JSONObject对象,并使用put()方法添加元素:
首先我们创建一个User对象以备后用:
public class User {
private int id
private String name
private String pwd
private String sex
//get,set方法
@Override
//重写他的toString方法
public String toString() {
return this.name+"--"+this.pwd+"--"+this.sex
}
}
用自带的解析工具
package cn.edu.bzu.json
import java.io.FileNotFoundException
import java.io.FileReader
import com.google.gson.JsonArray
import com.google.gson.JsonIOException
import com.google.gson.JsonObject
import com.google.gson.JsonParser
import com.google.gson.JsonSyntaxException
public class Read {
public static void main(String args[]){
JsonParser parse =new JsonParser() //创建json解析器
try {
JsonObject json=(JsonObject) parse.parse(new FileReader("weather.json")) //创建jsonObject对象
System.out.println("resultcode:"+json.get("resultcode").getAsInt()) //将json数据转为为int型的数据
System.out.println("reason:"+json.get("reason").getAsString()) //将json数据转为为String型的数据
JsonObject result=json.get("result").getAsJsonObject()
JsonObject today=result.get("today").getAsJsonObject()
System.out.println("temperature:"+today.get("temperature").getAsString())
System.out.println("weather:"+today.get("weather").getAsString())
} catch (JsonIOException e) {
e.printStackTrace()
} catch (JsonSyntaxException e) {
e.printStackTrace()
} catch (FileNotFoundException e) {
e.printStackTrace()
}
}
}
如果聊天数据的结构是固定的或变化不大的。就直接“编排”json字符串。
为要输出的对象增加一个String toJSON()方法
StringBuilder b=new StringBuilder()
b.append("{ name:\"")
b.append(username)
b.append("\"}")
依次类推
return b.toString()
适合绝大多数情况。
补充:json是做交换格式,查询效率非常低,如果做存储的检索格式就误用了。
就是说“聊天信息的保存用json应该可以吧”还不如你之前的mysql数据库。
json用在客户端往服务端发送的通讯交换数据的格式上。服务端收到后转为数据库中或内存中存放。