我有一个带有此代码的JSON。
[
{
},
{
},
{
},
{
},
{
},
{
},
{
"Producto0":[
{
"crf":"4555424"
},
{
"name":"Limpiador"
},
{
"desc":"Producto de importacion italiano"
},
{
"pve":"8.44"
},
{
"pvp":"14.99"
},
{
"cdp":"10"
},
{
"familia":"Limpieza"
},
{
"existencias":"10"
}
],
"Producto1":[
{
"crf":"5132413"
},
{
"name":"Colador"
},
{
"desc":"Colador de acero"
},
{
"pve":"15"
},
{
"pvp":"18"
},
{
"cdp":"10"
},
{
"familia":"Cocina"
},
{
"existencias":"100"
}
]
},
{
},
{
"Proveedor0":[
{
"crf":"10"
},
{
"razonsocial":"pene"
},
{
"cif":"10"
},
{
"num":"10"
},
{
"correo":"10"
},
{
"direccion":"10"
},
{
"metodopago":"1"
},
{
"observaciones":"10"
}
],
"Proveedor1":[
{
"crf":"5421452"
},
{
"razonsocial":"Falete"
},
{
"cif":"45411"
},
{
"num":"42314"
},
{
"correo":"falete@gmail.com"
},
{
"direccion":"tu casa"
},
{
"metodopago":"T"
},
{
"observaciones":"Es muy pesado"
}
]
}
]
我尝试了很多方法来阅读这个JSON,但我无法实现它。这是我的代码中唯一有效的部分。
import org.json.simple.JSONArray;
import org.json.simple.parser.*;
import org.json.*;
import java.io.FileReader;
import java.io.IOException;
public class parse {
routes router = new routes();
String ruta = router.getruta();
public parse() {
// TODO Auto-generated constructor stub
}
public void parseproductos() {
JSONParser parser = new JSONParser();
try {
JSONArray a = (JSONArray) parser.parse(new FileReader("ruta"));
for (Object o : a)
{
}
} catch (IOException | ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
我尝试读取一个从数据库中另一个类生成的JSON。在我尝试阅读例如“ProductoXXX”的那一刻,我没有得到它们或得到所有想法。有人可以帮我读一下JSON只有“ProductoXX”吗?
更新,有人要求我的JSON编码器帮我简化它。
import java.io.FileWriter; import java.io.IOException;
import org.json.simple.JSONArray; import org.json.simple.JSONObject;
public class getdata extends dbconnect {
public void getData() throws IOException {
int i = 0;
JSONArray listt = new JSONArray();
JSONObject jobj = new JSONObject();
JSONObject jobjt1 = new JSONObject();
JSONObject jobjt2 = new JSONObject();
JSONObject jobjt3 = new JSONObject();
JSONObject jobjt4 = new JSONObject();
JSONObject jobjt5 = new JSONObject();
JSONObject jobjt6 = new JSONObject();
JSONObject jobjt7 = new JSONObject();
JSONObject jobjt8 = new JSONObject();
JSONObject jobjt9 = new JSONObject();
try {
//Albaran
String query1 = "select * from Albaran";
rs = st.executeQuery(query1);
i=0;
while(rs.next()) {
JSONArray list1 = new JSONArray();
JSONObject jobja = new JSONObject();
JSONObject jobjb = new JSONObject();
JSONObject jobjc = new JSONObject();
JSONObject jobjd = new JSONObject();
JSONObject jobje = new JSONObject();
JSONObject jobjf = new JSONObject();
JSONObject jobjg = new JSONObject();
JSONObject jobjh = new JSONObject();
String a1= rs.getString("CodAlbaran");
String a2= rs.getString("CodRefCli");
String a3= rs.getString("CodRefPro");
String a4= rs.getString("CIFPropio");
String a5= rs.getString("Dir.Archivo");
jobja.put("codalbaran", a1);
jobjb.put("codRefCli", a2);
jobjc.put("codrefpro",a3 );
jobjd.put("cifpropio", a4);
jobje.put("directorio", a5);
list1.add(jobja);
list1.add(jobjb);
list1.add(jobjc);
list1.add(jobjd);
list1.add(jobje);
jobjt1.put("Albaran"+i++, list1);
}
listt.add(jobjt1);
//Clientes
String query2 = "select * from Clientes";
rs = st.executeQuery(query2);
i=0;
while(rs.next()) {
JSONArray list2 = new JSONArray();
JSONObject jobja = new JSONObject();
JSONObject jobjb = new JSONObject();
JSONObject jobjc = new JSONObject();
JSONObject jobjd = new JSONObject();
JSONObject jobje = new JSONObject();
JSONObject jobjf = new JSONObject();
JSONObject jobjg = new JSONObject();
JSONObject jobjh = new JSONObject();
String b1 = rs.getString("CodRefCli");
String b2 = rs.getString("RazonSocial");
String b3 = rs.getString("CIF");
String b4 = rs.getString("Num");
String b5 = rs.getString("Correo");
String b6 = rs.getString("Direccion");
String b7 = rs.getString("MetodoPago");
String b8 = rs.getString("Observaciones");
jobja.put("codrefcli", b1);
jobjb.put("razonsocial", b2);
jobjc.put("cif", b3);
jobjd.put("num", b4);
jobje.put("correo", b5);
jobjf.put("direccion", b6);
jobjg.put("metodopago", b7);
jobjh.put("observaciones", b8);
list2.add(jobja);
list2.add(jobjb);
list2.add(jobjc);
list2.add(jobjd);
list2.add(jobje);
list2.add(jobjf);
list2.add(jobjg);
list2.add(jobjh);
jobjt2.put("Cliente"+i++, list2);
}
listt.add(jobjt2);
//Empleados
String query3 = "select * from Empleados";
rs = st.executeQuery(query3);
i=0;
while(rs.next()) {
JSONArray list3 = new JSONArray();
JSONObject jobja = new JSONObject();
JSONObject jobjb = new JSONObject();
JSONObject jobjc = new JSONObject();
JSONObject jobjd = new JSONObject();
JSONObject jobje = new JSONObject();
JSONObject jobjf = new JSONObject();
JSONObject jobjg = new JSONObject();
JSONObject jobjh = new JSONObject();
String c1 = rs.getString("Cod.Empleado");
String c2 = rs.getString("Nombre");
String c3 = rs.getString("Apellidos");
String c4 = rs.getString("DNI");
String c5 = rs.getString("Direccion");
String c6 = rs.getString("FechaAlta");
String c7 = rs.getString("CopiaContrato");
String c8 = rs.getString("NCuenta");
jobja.put("codempleado", c1);
jobjb.put("nombre", c2);
jobjc.put("apellidos", c3);
jobjd.put("dni", c4);
jobje.put("direccion", c5);
jobjf.put("fechaalta", c6);
jobjg.put("copiacontrato", c7);
jobjh.put("numcuenta", c8);
list3.add(jobja);
list3.add(jobjb);
list3.add(jobjc);
list3.add(jobjd);
list3.add(jobje);
list3.add(jobjf);
list3.add(jobjg);
list3.add(jobjh);
jobjt3.put("Empleado"+i++, list3);
}
listt.add(jobjt3);
//Existencias
String query4 = "select * from Existencias";
rs = st.executeQuery(query4);
i=0;
while(rs.next()) {
JSONArray list4 = new JSONArray();
JSONObject jobja = new JSONObject();
JSONObject jobjb = new JSONObject();
JSONObject jobjc = new JSONObject();
JSONObject jobjd = new JSONObject();
JSONObject jobje = new JSONObject();
JSONObject jobjf = new JSONObject();
JSONObject jobjg = new JSONObject();
JSONObject jobjh = new JSONObject();
String d1 = rs.getString("Cod.RefExistencia");
String d2 = rs.getString("Cod.RefPro");
String d3 = rs.getString("Cantidad");
String d4 = rs.getString("Sitio");
String d5 = rs.getString("Proposito");
jobja.put("codrefexistencia", d1);
jobjb.put("codrefproducto", d2);
jobjc.put("cantidad", d3);
jobjd.put("sitio", d4);
jobje.put("proposito", d5);
list4.add(jobja);
list4.add(jobjb);
list4.add(jobjc);
list4.add(jobjd);
list4.add(jobje);
jobjt4.put("Existencia"+i++, list4);
}
listt.add(jobjt4);
//PedidosClientes
String query5 = "select * from PedidosC";
rs = st.executeQuery(query5);
i=0;
while(rs.next()) {
JSONArray list5 = new JSONArray();
JSONObject jobja = new JSONObject();
JSONObject jobjb = new JSONObject();
JSONObject jobjc = new JSONObject();
JSONObject jobjd = new JSONObject();
JSONObject jobje = new JSONObject();
JSONObject jobjf = new JSONObject();
JSONObject jobjg = new JSONObject();
JSONObject jobjh = new JSONObject();
String e1= rs.getString("NumPed");
String e2= rs.getString("FechaPedido");
String e3= rs.getString("FormadePago");
String e4 = rs.getString("EnviadoA");
String e5 = rs.getString("CodCliente");
String e6 = rs.getString("CPP");
jobja.put("numped", e1);
jobjb.put("fechapedido", e2);
jobjc.put("formapago", e3);
jobjd.put("enviadoa", e4);
jobje.put("codcliente", e5);
jobjf.put("cpp", e6);
list5.add(jobja);
list5.add(jobjb);
list5.add(jobjc);
list5.add(jobjd);
list5.add(jobje);
list5.add(jobjf);
jobjt5.put("PedidoCliente"+i++, list5);
}
listt.add(jobjt5);
//PedidosProveedores
String query6 = "select * from PedidosC";
rs = st.executeQuery(query6);
i=0;
while(rs.next()) {
JSONArray list6 = new JSONArray();
JSONObject jobja = new JSONObject();
JSONObject jobjb = new JSONObject();
JSONObject jobjc = new JSONObject();
JSONObject jobjd = new JSONObject();
JSONObject jobje = new JSONObject();
JSONObject jobjf = new JSONObject();
JSONObject jobjg = new JSONObject();
JSONObject jobjh = new JSONObject();
String f1= rs.getString("NumPed");
String f2= rs.getString("FechaPedido");
String f3 = rs.getString("FormadePago");
String f4 = rs.getString("EnviadoA");
String f5 = rs.getString("Cod.Prov");
String f6 = rs.getString("CPP");
jobja.put("numped", f1);
jobjb.put("fechapedido", f2);
jobjc.put("formapago", f3);
jobjd.put("enviadoa", f4);
jobje.put("codcliente", f5);
jobjf.put("cpp", f6);
list6.add(jobja);
list6.add(jobjb);
list6.add(jobjc);
list6.add(jobjd);
list6.add(jobje);
list6.add(jobjf);
jobjt6.put("PedidoProveedor"+i++, list6);
}
listt.add(jobjt6);
//Productos
String query7 = "select * from Productos";
rs = st.executeQuery(query7);
i=0;
while(rs.next()) {
JSONArray list7 = new JSONArray();
JSONObject jobja = new JSONObject();
JSONObject jobjb = new JSONObject();
JSONObject jobjc = new JSONObject();
JSONObject jobjd = new JSONObject();
JSONObject jobje = new JSONObject();
JSONObject jobjf = new JSONObject();
JSONObject jobjg = new JSONObject();
JSONObject jobjh = new JSONObject();
String g1= rs.getString("Cod.RefPro");
String g2= rs.getString("Nombre");
String g3 = rs.getString("Descripcion");
String g4 = rs.getString("PrecioNeto");
String g5 = rs.getString("pvp");
String g6 = rs.getString("CodRefProv");
String g7 = rs.getString("Familia");
String g8 = rs.getString("Existencias");
jobja.put("crf", g1);
jobjb.put("name", g2);
jobjc.put("desc", g3);
jobjd.put("pve", g4);
jobje.put("pvp", g5);
jobjf.put("cdp", g6);
jobjg.put("familia", g7);
jobjh.put("existencias", g8);
list7.add(jobja);
list7.add(jobjb);
list7.add(jobjc);
list7.add(jobjd);
list7.add(jobje);
list7.add(jobjf);
list7.add(jobjg);
list7.add(jobjh);
jobjt7.put("Producto"+i++, list7);
}
listt.add(jobjt7);
//PropiaEmpresa
String query8 = "select * from PropiaEmpresa";
rs = st.executeQuery(query8);
i=0;
while(rs.next()) {
JSONArray list8 = new JSONArray();
JSONObject jobja = new JSONObject();
JSONObject jobjb = new JSONObject();
JSONObject jobjc = new JSONObject();
JSONObject jobjd = new JSONObject();
JSONObject jobje = new JSONObject();
JSONObject jobjf = new JSONObject();
JSONObject jobjg = new JSONObject();
JSONObject jobjh = new JSONObject();
String p1= rs.getString("CIF");
String p2= rs.getString("RazonSocial");
String p3 = rs.getString("Telefono");
String p4 = rs.getString("Correo");
String p5 = rs.getString("Direccion");
String p6 = rs.getString("NCuenta");
jobja.put("cif", p1);
jobjb.put("razonsocial", p2);
jobjc.put("telef", p3);
jobjd.put("correo", p4);
jobje.put("direccion", p5);
jobjf.put("ncuenta", p6);
list8.add(jobja);
list8.add(jobjb);
list8.add(jobjc);
list8.add(jobjd);
list8.add(jobje);
list8.add(jobjf);
jobjt8.put("PropiaEmpresa", list8);
}
listt.add(jobjt8);
//Proveedor
String query9 = "select * from Proveedor";
rs = st.executeQuery(query9);
i=0;
while(rs.next()) {
JSONArray list9 = new JSONArray();
JSONObject jobja = new JSONObject();
JSONObject jobjb = new JSONObject();
JSONObject jobjc = new JSONObject();
JSONObject jobjd = new JSONObject();
JSONObject jobje = new JSONObject();
JSONObject jobjf = new JSONObject();
JSONObject jobjg = new JSONObject();
JSONObject jobjh = new JSONObject();
String h1= rs.getString("Cod.Referencia");
String h2= rs.getString("RazonSocial");
String h3 = rs.getString("CIF");
String h4 = rs.getString("Numero");
String h5 = rs.getString("Correo");
String h6 = rs.getString("Direccion");
String h7 = rs.getString("MetodoPago");
String h8 = rs.getString("Observaciones");
jobja.put("crf", h1);
jobjb.put("razonsocial", h2);
jobjc.put("cif", h3);
jobjd.put("num", h4);
jobje.put("correo", h5);
jobjf.put("direccion", h6);
jobjg.put("metodopago", h7);
jobjh.put("observaciones", h8);
list9.add(jobja);
list9.add(jobjb);
list9.add(jobjc);
list9.add(jobjd);
list9.add(jobje);
list9.add(jobjf);
list9.add(jobjg);
list9.add(jobjh);
jobjt9.put("Proveedor"+i++, list9);
}
listt.add(jobjt9);
// try-with-resources statement based on post comment below :)
routes router = new routes();
String ruta = router.getruta();
try (FileWriter file = new FileWriter(ruta+"data.json")) {
file.write(listt.toJSONString());
file.flush();
}
}catch(Exception ex) {
System.out.println("Error: "+ex);
}
}
}
抱歉原始。从手机发布,无法从计算机访问互联网。
答案 0 :(得分:0)
使用递归..这可能对你有所帮助.. 这是从json读取所有数据的通用..
public class TestMain {
public static void main(String[] args) throws Exception {
JSONArray jsonArray = new JSONArray("Your JSON String");
readJSONArray(jsonArray);
}
public static JSONObject readJSONObject(JSONObject inputObject) throws Exception {
JSONObject resultObject = new JSONObject();
Iterator iterator = inputObject.keys();
while (iterator.hasNext()) {
String key = (String) iterator.next();
if (inputObject.get(key) instanceof JSONObject) {
JSONObject jsonObject = (JSONObject) inputObject.get(key);
resultObject.put(getModifiedKey(key), readJSONObject(jsonObject));
} else if (inputObject.get(key) instanceof JSONArray) {
JSONArray jsonArray = (JSONArray) inputObject.get(key);
resultObject.put(getModifiedKey(key), readJSONArray(jsonArray));
} else {
System.out.println("key= "+key+", value= "+inputObject.get(key)); //instead printing u can write your own logic
}
}
return resultObject;
}
public static JSONArray readJSONArray(JSONArray inputArray) throws Exception {
JSONArray resultArray = new JSONArray();
for (int i = 0; i < inputArray.length(); i++) {
if (inputArray.get(i) instanceof JSONObject) {
JSONObject jsonObject = (JSONObject) inputArray.get(i);
resultArray.put(i, readJSONObject(jsonObject));
} else if (inputArray.get(i) instanceof JSONArray) {
JSONArray jsonArray = (JSONArray) inputArray.get(i);
resultArray.put(i, readJSONArray(jsonArray));
} else {
System.out.println("index= "+i+", value= "+inputArray.get(i)); //instead printing u can write your own logic
}
}
return resultArray;
}
}