java json 对象操作,如何使用Java在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

for(int j=0; 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());

}

Output:

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"}]}

解决方案

The result of your query returns always the keys id and NAME, so you're overwriting the values continuously.

If you want to have multiple objects with id and NAME properties you should use a JSONArray and create nested JSONObjects 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

{

JSONObject row = new JSONObject();

for(int j=0; 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 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值