如何使用java读取多个json对象?
我有一个JSON响应,我想将每个元素存储在一个字符串中。由于我不熟悉JSON,因此很难找到解决方案。请给我一个解决方案。 下面是我的json响应如何使用java读取多个json对象?,java,arrays,json,Java,Arrays,Json,我有一个JSON响应,我想将每个元素存储在一个字符串中。由于我不熟悉JSON,因此很难找到解决方案。请给我一个解决方案。 下面是我的json响应 { "responseFlag": 1, "responseMsg": "Successfully retrieved data", "responseObj": [{ "assets": { "asset_since": "", "asse
{
"responseFlag": 1,
"responseMsg": "Successfully retrieved data",
"responseObj": [{
"assets": {
"asset_since": "",
"asset_type": "",
"comments": "",
"estimated_value": "",
"material_status": "SINGLE",
"ownership_of_assets": "",
"pep": "",
"source_of_income": ""
}
},
{
"assets": {
"asset_since": "",
"asset_type": "",
"comments": "",
"estimated_value": "",
"material_status": "SINGLE",
"ownership_of_assets": "",
"pep": "",
"source_of_income": ""
}
}
]
}
我想将每个对象元素存储在一个数组中
我试过的代码如下
package mytry;
import java.util.Iterator;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class Mytry {
public static void main(String[] args) {
// TODO code application logic here
String response="{\n" +
" \"responseFlag\": 1,\n" +
" \"responseMsg\": \"Successfully retrieved data\",\n" +
" \"responseObj\": [\n" +
" {\n" +
" \"assets\": {\n" +
" \"asset_since\": \"\",\n" +
" \"asset_type\": \"\",\n" +
" \"comments\": \"\",\n" +
" \"estimated_value\": \"\",\n" +
" \"material_status\": \"SINGLE\",\n" +
" \"ownership_of_assets\": \"\",\n" +
" \"pep\": \"\",\n" +
" \"source_of_income\": \"\"\n" +
" }},\n" +
" {\n" +
" \"assets\": {\n" +
" \"asset_since\": \"\",\n" +
" \"asset_type\": \"\",\n" +
" \"comments\": \"\",\n" +
" \"estimated_value\": \"\",\n" +
" \"material_status\": \"SINGLE\",\n" +
" \"ownership_of_assets\": \"\",\n" +
" \"pep\": \"\",\n" +
" \"source_of_income\": \"\"\n" +
" }}]}";
JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(response);
JSONObject jsonObject = (JSONObject) obj;
//System.out.println(jsonObject.toString());
System.out.println("json size=="+jsonObject.size());
System.out.println("hghgfh"+jsonObject.keySet());
Long sflag = (Long) jsonObject.get("responseFlag");
String msg=(String) jsonObject.get("responseMsg");
String resobj=(String) jsonObject.get("responseObj").toString();
//jsonObject.
System.out.println("sflag=="+sflag);
System.out.println("msg=="+msg);
System.out.println("msg=="+resobj);
// JSONArray msg = (JSONArray) jsonObject.get("responseFlag");
// Iterator<String> iterator = msg.iterator();
// while (iterator.hasNext()) {
// System.out.println(iterator.next());
// }
// for(Iterator iterator = jsonObject.keySet().iterator(); iterator.hasNext();) {
// String key = (String) iterator.next();
// System.out.println(jsonObject.get(key));
//}
// String asset = (String) jsonObject.get("assets");
// System.out.println("session token"+asset);
//sflag = (Long) jsonObject.get("responseFlag");
//System.out.println("session sflag"+sflag);
} catch (ParseException ex) {
System.out.println(ex);
}
}
}
我需要将每个资产值存储在一个数组中 这是一个伪代码。您可以在此代码中填充缺少的部分
String json = "{"responseFlag":1,"responseMsg":"Successfully retrieved data","responseObj":[{"assets":{"asset_since":"","asset_type":"","comments":"","estimated_value":"","material_status":"SINGLE","ownership_of_assets":"","pep":"","source_of_income":""}},{"assets":{"asset_since":"","asset_type":"","comments":"","estimated_value":"","material_status":"SINGLE","ownership_of_assets":"","pep":"","source_of_income":""}}]}";
JSONObject jsonObject = new JSONObject(json);
JSONArray jsonArray = jsonObject.getJSONArray("responseObj");
for(int i=0; i<jsonArray.length(); i++)
{
JSONObject arrayJsonObject = jsonArray.getJSONObject(i);
//insert into your list or array
}
String json=“{responseFlag]:1,“responseMsg:”成功检索数据“,”responseObj:“{”资产“:”资产类型“:”注释“:”估计值“:”材料状态“:”单一“,”资产所有权“:”pep“,”收入来源“:”},{”资产“:{”资产“:”资产类型“:”注释“,”估计值“:”材料状态:“单一”、“资产所有权”:“政治公众人物”:“收入来源”:“}}]}”;
JSONObject JSONObject=新的JSONObject(json);
JSONArray JSONArray=jsonObject.getJSONArray(“responseObj”);
如果您使用的是json-simple-1.1.1 jar,则为(int i=0;i)
JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(response);
JSONObject jsonObject = (JSONObject) obj;
//System.out.println(jsonObject.toString());
System.out.println("json size==" + jsonObject.size());
System.out.println("hghgfh" + jsonObject.keySet());
JSONArray jsonArray = (JSONArray)jsonObject.get("responseObj");
for(int i=0; i<jsonArray.size(); i++)
{
JSONObject arrayJsonObject = (JSONObject) jsonArray.get(i);
JSONObject assets = (JSONObject) arrayJsonObject.get("assets");
// read the assets to store
}
}catch (Exception e){
}
JSONParser=newjsonparser();
试一试{
objectobj=parser.parse(响应);
JSONObject JSONObject=(JSONObject)对象;
//System.out.println(jsonObject.toString());
System.out.println(“json大小=”+jsonObject.size());
System.out.println(“hghgfh”+jsonObject.keySet());
JSONArray JSONArray=(JSONArray)jsonObject.get(“responseObj”);
对于(int i=0;i实际的问题是什么?有需要是很好的,但这本身并不是一个有效的问题。“资产”:{“资产自”:“资产类型”:“评论”:“估计价值”:“材料状态”:“单一”,“资产所有权”:“pep”:,“收入来源”:“}},{“资产”:“{”资产自“:”资产类型“:”注释“:”估计价值“:”材料状态“:”单一“,”资产所有权“:”pep“:”收入来源“:”}我希望此响应对象存储在arrayHi Praveen中,我使用json-simple-1.1.1 jar。我需要更改jar吗?如果是json simple jar,请按照下面的Jaycee回答。我使用json.jarWelcome。但是总体概念是相同的。从jsonObject获取jsonArray并迭代它。
JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(response);
JSONObject jsonObject = (JSONObject) obj;
//System.out.println(jsonObject.toString());
System.out.println("json size==" + jsonObject.size());
System.out.println("hghgfh" + jsonObject.keySet());
JSONArray jsonArray = (JSONArray)jsonObject.get("responseObj");
for(int i=0; i<jsonArray.size(); i++)
{
JSONObject arrayJsonObject = (JSONObject) jsonArray.get(i);
JSONObject assets = (JSONObject) arrayJsonObject.get("assets");
// read the assets to store
}
}catch (Exception e){
}