如何使用Java附加键-JSON对象中的值 [英] How to append key - values in json object using java
问题描述
我正在使用org.json.JSONObject包通过填充db中的值来创建JSONArray,我可以从db中获取值并将它们放置一个键-在json中配对,但是在程序末尾:key and不会附加值,而仅将数组的最后一行转换为json对象.我希望将它们附加在最终的json中.任何帮助将不胜感激.
I am using org.json.JSONObject package to create a JSONArray by filling up values from db, I can get the values from db and put them a key - pair in json, but at the end of the program: key and values are not appended whereas only the last row of array is converted into json object. I want them to be appended in the final json. Any help will be appreciated.
try {
MobileTestClass_Methods.InitializeConfiguration();
String sqlQuery = "SELECT id, NAME FROM campaign LIMIT 4; ";
Connection con = MobileTestClass_Methods.CreateSQLConnection();
String [][] arr = MobileTestClass_Methods
.ExecuteMySQLQueryReturnsArrayWithColumnName(con, sqlQuery);
JSONObject json = new JSONObject();
int totalrow =arr.length;
int totalcolumn =arr[0].length;
System.out.println("row: "+totalrow + " col: "+totalcolumn);
for(int i=1; i<totalrow; i++) {
for(int j=0; j<totalcolumn; j++) {
String key = arr[0][j];
String value = arr[i][j];
json.put(key, value);
System.out.println("Key: "+key + " value: "+value);
}
}
System.out.println("Json: "+json);
JSONArray array = new JSONArray();
array.put(json);
JSONObject main = new JSONObject();
main.put("result", array);
System.out.println("Final Json Array: "+main);
} catch(Exception e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
输出:
row: 5 col: 2
Key: id value: 25256
Key: NAME value: megha_video
Key: id value: 32168
Key: NAME value: Mukesh_13Aug_vpaid
Key: id value: 25258
Key: NAME value: vast
Key: id value: 32167
Key: NAME value: SDK-rtb-hudson-130815
Json: {"id":"32167","NAME":"SDK-rtb-hudson-130815"}
Final Json Array: {"result":[{"id":"32167","NAME":"SDK-rtb-hudson-130815"}]}
推荐答案
查询结果始终返回键id
和NAME
,因此您将连续覆盖这些值.
The result of your query returns always the keys id
and NAME
, so you're overwriting the values continuously.
如果要具有具有id
和NAME
属性的多个对象,则应使用JSONArray
并在其中创建嵌套的JSONObject
:
If you want to have multiple objects with id
and NAME
properties you should use a JSONArray
and create nested JSONObject
s inside:
// ... previous code
String [][] arr = MobileTestClass_Methods.ExecuteMySQLQueryReturnsArrayWithColumnName(con, sqlQuery);
JSONArray json = new JSONArray ();
int totalrow =arr.length;
int totalcolumn =arr[0].length;
System.out.println("row: "+totalrow + " col: "+totalcolumn);
for(int i=1; i<totalrow; i++)
{
JSONObject row = new JSONObject();
for(int j=0; j<totalcolumn; j++)
{
String key = arr[0][j];
String value = arr[i][j];
row.put(key, value);
System.out.println("Key: "+key + " value: "+value);
}
json.put(row);
}
// ... rest of the code ...
这篇关于如何使用Java附加键-JSON对象中的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!