Descubrí el GSON de Google, porque antes tenía cierta comprensión de Protocolbuf y tenía cierta curiosidad, comencé a usar GSON.
Página de inicio de Github: https://github.com/google/gson
Después de la comparación, GSON y otras bibliotecas de clase Java JSON existentes tienen las mayores diferencias. GSON necesita ser serializado para lograr clases de entidad sin usar anotaciones para identificar campos que necesitan ser serializados. Al mismo tiempo, GSON puede configurar de manera flexible los campos que deben ser serializados utilizando la anotación.
Es muy simple convertir la lista o el mapa a JSON:
public String getJSondata (list <?> list) {gson gson = new Gson (); Cadena jsonstring = gson.tojson (lista); return jsonstring;}Tendremos ejemplos detallados a continuación.
Ejemplo
Conversión simple de objetos y conversión de la lista con genéricos:
Clase de entidad:
Estudiante de clase pública {private int id; nombre de cadena privada; cumpleaños de cita privada; public int getId () {return id; } public void setid (int id) {this.id = id; } public String getName () {nombre de retorno; } public void setName (nombre de cadena) {this.name = name; } Fecha pública GetBirthday () {regreso de cumpleaños; } public void setBirthday (cumpleaños de fecha) {this.birthday = cumpleaños; } @Override public string toString () {return "student [birthdle =" + birthdle + ", id =" + id + ", name =" + name + "]"; }}Clase de prueba:
import java.util.arrayList; import java.util.date; import java.util.list; import com.google.gson.gson; import com.google.gson.reflect.typetoken; clase pública gsontest1 {public static void main (string [] args) {gson gson = new Gson (); Estudiante estudiante1 = nuevo estudiante (); estudiante1.setid (1); Student1.setName ("Li Kun"); Student1.setBirthday (nueva fecha ()); // /////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// System.out.println ("JSON a Simple Bean ===" + Student); // resultado: // sencillo bean a json === {"id": 1, "nombre": "li kun", "cumpleaños": "22 de junio de 2012 8:27:52 am"} // json a simple === estudiante [cumpleaños = viernes 22 de junio de junio 08:27:52 cst 2012, id = 1, // name = li kun] // //////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////// student2 = new Student (); estudiante2.setid (2); Student2.SetName ("Cao Guisheng"); Student2.SetBirthday (nueva fecha ()); Estudiante estudiante3 = nuevo estudiante (); estudiante3.setid (3); student3.setName ("liu bo"); estudiante3.setbirthday (nueva fecha ()); List <deude> list = new ArrayList <Estudio> (); list.add (Student1); list.add (Student2); list.add (Student3); System.out.println ("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------- Resultado: // La lista con genéricos se convierte en json == [{"id": 1, "nombre": "li kun", "cumpleaños": "22 de junio de 2012 8:28:52 am"}, {"id": 2, "nombre": "Cao Guisheng", "cumpleaños": "22 de junio, 2012 8:28:52 am" Bo "," cumpleaños ":" 22 de junio de 2012 8:28:52 am "}] // estudiante [cumpleaños = viernes 22 de junio 08:28:52 CST 2012, id = 1, nombre = li kun] // estudiante [cumpleaños = viernes 22 de junio 08:28:52 CST 2012, id = 2, nombre = nombre Guisheng] // estudiante [cumpleaños = fri 22 de junio de junio nombre = liu bo]}}Resultados de la ejecución:
--------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------- Pm "}, {" id ": 2," nombre ":" Cao Guisheng "," Cumpleaños ":" 22 de junio de 2012 9:10:31 PM "}, {" id ": 3," Nombre ":" Liu Bo "," Cumpleaños ":" Jun 22, 2012 9:10:31 PM "}}] Estudiante [cumpleaños = fri 22 de junio 21:10:31 CST 2012, Id = 1, nombre, nombre 22 21:10:31 CST 2012, ID = 2, nombre = Cao Guisheng] Estudiante [cumpleaños = viernes 22 de junio 21:10:31 CST 2012, ID = 3, nombre = Liu Bo]