标签:nts key mmm strong value cat nbsp tchar 对象
Json字符串里面的是一个对象,如果是多个对象,则用逗号间隔,即{},{},这样就组成了一个对象序列,为了辨别开始和结束,则需要加上[]才能进行传递,则实际传递的形式应该是[{},{}],如果只要传递一个对象,则{}的形式就可以了。接下来就是对象属性的表现方式了,属性必须在""
里面,属性与值之间用:隔开,属性之间用,来分隔,如果属性的值为数组,则用[]包括起来,这样实际传递的数据格式可能有:1、{"属性1":值1,"属性2":值2},如果值为字符串,则也需要用""括起来(下同)。2、{"属性1":值1,"属性2":[值1,值2]},其中属性2是一个数组,包含
了值1和值2。3、{"属性1":值1,"属性2":{"属性a":值a,"属性b":[值b,值c]}},这个比较复杂了,属性2是个对象,这个对象由包含属性a和属性b,属性b又是一个数组包含值b和值c。我想这些应该是最基本了,其余的就是在此基础上的拓展而已。
实例:
import java.lang.reflect.Constructor; import java.lang.reflect.Field; class Student { private String name; private int age; private String sex; public Student(String name, int age, String sex) { this.name = name; this.age = age; this.sex = sex; } } /** * 介绍以下Json字符串 数据的序列化 * Student stu = new Student("sss", 20, "male"); * Json格式的数据: {"name":"sss", "age":20, "sex":"male"} * @Author huiman */ public class MyJson { /** * 获取所有的属性:getField * 把对象序列化成Json字符串 * cls 类型的Class对象 * @param <T> * @return */ public static <T> String toJson(T obj, Class<T> cls) throws Exception { StringBuilder sb = new StringBuilder(); sb.append("{"); Field[] fields = cls.getDeclaredFields();//获取所有属性存入数组 //异常放在循环外 try { for (int i = 0; i < fields.length; i++) { String name = fields[i].getName(); //获取成员变量的名字 Field f2 = cls.getDeclaredField(name); //获取每一个属性 f2.setAccessible(true); Object value = f2.get(obj); //get方法获得属性的值,注意参数,获取的是对象 String str = name + ":" + value + ","; sb.append(str);//获取名字与值后用{括起来 } } catch (Exception e) { } /**将index号元素的值改为ch * public void setCharAt(int index, char ch) { // if ((index < 0) || (index >= count)) // throw new StringIndexOutOfBoundsException(index); // value[index] = ch; } */ sb.setCharAt(sb.length()-1,‘}‘);//setCharAt方法将最后一个改为"}" return sb.toString();//返回sb字符串 } public static void main(String[] args) throws Exception { //将创建的Student对象存入数组 Student[] students=new Student[3];//创建几个对象就要给对象赋值 students[0]=new Student("sss", 20, "male"); students[1]=new Student("mmm",10,"female"); students[2]=new Student("aaa",30,"female"); StringBuilder sb=new StringBuilder(); sb.append("["); for(int i=0;i<students.length;i++){ //将方法中产生的对象拼接起来 sb.append(MyJson.toJson(students[i], Student.class)); //对象之间用,隔开 sb.append(","); } sb.setCharAt(sb.length()-1,‘]‘); System.out.println(sb); } }
标签:nts key mmm strong value cat nbsp tchar 对象
原文地址:https://www.cnblogs.com/laurarararararara/p/11801650.html