嗨,朋友们,我第一次尝试调用json,我需要一些帮助
我收到以下答复
“{,”restresponse“{,”messages“:[”找到的记录总数[249],,”result“:[{,”name“:”afghanistan“,”alpha2\u code“:”af“,”alpha3\u code“:”afg“,},{,”name“:”��陆地岛屿“,”alpha2\u code“:”ax“,”alpha3\u code“:”ala“,},{,”name“:”albana“,”alpha2\u code“:”al“,”alpha3\u code“:”alb“,},{,”name“:”algeria“,”alpha2\u code“:”dz“,”alpha2\u code“:”bh“,”alpha3\u code“:”bhr“,},{
但我需要的响应键明智的或单独的项目,如名称或alpha2\u码值等,你可以帮我。下面是我的完整代码。
package com.group.portal.client.common.actions;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import org.apache.turbine.util.RunData;
import org.json.JSONObject;
import org.mozilla.javascript.json.JsonParser;
import antlr.collections.List;
public class PaymentProcess extends AjaxAction {
public void doPerform(RunData data) throws Exception {
data.getUser();
JSONObject resultJSON = new JSONObject();
String msg = "This is Test Message";
boolean error = false;
Object object = null;
try {
URL url = new URL("http://services.groupkt.com/country/get/all");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
if (conn.getResponseCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : "
+ conn.getResponseCode());
}
BufferedReader br = new BufferedReader(new InputStreamReader(
(conn.getInputStream())));
ArrayList<String> response = new ArrayList<String>();
StringBuilder sb = new StringBuilder();
String output="";
while ((output = br.readLine()) != null) {
System.out.println(output);
response.add(output);
}
resultJSON.put("msg",response.toArray(new String[0]));
conn.disconnect();
}
catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
data.getResponse().setHeader("Cache-Control",
"max-age=0,no-cache,no-store,post-check=0,pre-check=0");
data.getResponse()
.setHeader("Expires", "Mon, 26 Jul 1997 05:00:00 GMT");
data.getTemplateInfo()
.setTemp(
TechnicalResourceProvider.XML_HTTP_REQUEST_RESPONSE_CONTENT_TYPE,
"application/json; charset=utf-8");
data.getTemplateInfo().setTemp(
TechnicalResourceProvider.XML_HTTP_REQUEST_RESPONSE,
resultJSON.toString().getBytes("UTF-8"));
Log.info(getClass(),
"Function doperform of class GetAllBalance finished");
}
}
1条答案
按热度按时间8nuwlpux1#
您可以创建一个类(和子类)来匹配您试图解析的json,然后使用gson将所有json文本转换为java对象。。
下面是一个简单的例子:
示例json
我们基于json定义类。
然后我们可以将json转换为java对象
你也可以做相反的事情: