json服务中的javaeclipse问题

wtlkbnrh  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(323)

嗨,朋友们,我第一次尝试调用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码值等,你可以帮我。下面是我的完整代码。

  1. package com.group.portal.client.common.actions;
  2. import java.io.BufferedReader;
  3. import java.io.FileReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.net.HttpURLConnection;
  7. import java.net.MalformedURLException;
  8. import java.net.URL;
  9. import java.util.ArrayList;
  10. import org.apache.turbine.util.RunData;
  11. import org.json.JSONObject;
  12. import org.mozilla.javascript.json.JsonParser;
  13. import antlr.collections.List;
  14. public class PaymentProcess extends AjaxAction {
  15. public void doPerform(RunData data) throws Exception {
  16. data.getUser();
  17. JSONObject resultJSON = new JSONObject();
  18. String msg = "This is Test Message";
  19. boolean error = false;
  20. Object object = null;
  21. try {
  22. URL url = new URL("http://services.groupkt.com/country/get/all");
  23. HttpURLConnection conn = (HttpURLConnection) url.openConnection();
  24. conn.setRequestMethod("GET");
  25. conn.setRequestProperty("Accept", "application/json");
  26. if (conn.getResponseCode() != 200) {
  27. throw new RuntimeException("Failed : HTTP error code : "
  28. + conn.getResponseCode());
  29. }
  30. BufferedReader br = new BufferedReader(new InputStreamReader(
  31. (conn.getInputStream())));
  32. ArrayList<String> response = new ArrayList<String>();
  33. StringBuilder sb = new StringBuilder();
  34. String output="";
  35. while ((output = br.readLine()) != null) {
  36. System.out.println(output);
  37. response.add(output);
  38. }
  39. resultJSON.put("msg",response.toArray(new String[0]));
  40. conn.disconnect();
  41. }
  42. catch (MalformedURLException e) {
  43. e.printStackTrace();
  44. } catch (IOException e) {
  45. e.printStackTrace();
  46. }
  47. data.getResponse().setHeader("Cache-Control",
  48. "max-age=0,no-cache,no-store,post-check=0,pre-check=0");
  49. data.getResponse()
  50. .setHeader("Expires", "Mon, 26 Jul 1997 05:00:00 GMT");
  51. data.getTemplateInfo()
  52. .setTemp(
  53. TechnicalResourceProvider.XML_HTTP_REQUEST_RESPONSE_CONTENT_TYPE,
  54. "application/json; charset=utf-8");
  55. data.getTemplateInfo().setTemp(
  56. TechnicalResourceProvider.XML_HTTP_REQUEST_RESPONSE,
  57. resultJSON.toString().getBytes("UTF-8"));
  58. Log.info(getClass(),
  59. "Function doperform of class GetAllBalance finished");
  60. }
  61. }
8nuwlpux

8nuwlpux1#

您可以创建一个类(和子类)来匹配您试图解析的json,然后使用gson将所有json文本转换为java对象。。
下面是一个简单的例子:
示例json

  1. {"players": [
  2. {"firstname": "Mark", "lastname": "Landers"},
  3. {"firstname": "holly", "lastname": "hatton"},
  4. {"firstname": "Benji", "lastname": "price"}],
  5. "teamname": "new team"}

我们基于json定义类。

  1. public class Team {
  2. public String teamname;
  3. public ArrayList<Player> players;
  4. }
  5. public class Player {
  6. public String firstname;
  7. public String lastname;
  8. }

然后我们可以将json转换为java对象

  1. public static void main(String [] args)
  2. {
  3. String myJson = ".....";
  4. Team nt = (Team) new GsonBuilder().
  5. serializeNulls(). // serialize null values
  6. create(). // create the object
  7. fromJson(json, Team.class); // from json and class
  8. }

你也可以做相反的事情:

  1. public static void main(String [] args)
  2. {
  3. Team myTeam = getTeam();
  4. String myTeamJson = new GsonBuilder().
  5. serializeNulls().
  6. create().
  7. toJson(obj);
  8. }
展开查看全部

相关问题