如何调用方法(可能是递归)本身JAVA

时间:2017-10-30 13:37:49

标签: java json methods

您好我是Java的新手,我有一个问题。 我正在使用一个包来解析JSON Markups,但是下面的问题是:

{
   "example": {
      "subThing": "value"
   },
   "anotherThing" : 0
   ...
}

如果我致电MyClass.getString("example").getString("subThing");,那么我的价值为subThing

我想尽可能多地使用索引变量以编程方式调用这些getString()。但我不知道该怎么做。

for(int i = 0;  i > getCurrentState(); i++) {
   //Here I want to call getString();
   //I want in round loop to call getString();
   //In second round loop to call getString().getString();
}

抱歉,我刚开始使用java 1周前。

编辑:

我是指如何以编程方式在for循环中调用get()和/或getString()

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解正确,但你可以在这里使用以下技巧:

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

public class App
{

    public static void main( String[] args ) throws JSONException {
        JSONObject newObj = new JSONObject("{" +
                "\"data\": [\n" +
                "    {\n" +
                "\"id\": 1,\n" +
                "        \"userId\": 1,\n" +
                "        \"name\": \"ABC\",\n" +
                "        \"modified\": \"2014-12-04\",\n" +
                "        \"created\": \"2014-12-04\",\n" +
                "        \"items\": [\n" +
                "            {\n" +
                "                \"email\": \"abc@gmail.com\",\n" +
                "                \"links\": [\n" +
                "                    {\n" +

                "                    }\n" +
                "                ]\n" +
                "            }\n" +
                "        ]\n" +
                "        }\n" +
                "    ]\n" +
                "\n" +
                "}");



        JSONArray items = newObj.getJSONArray("data");
        for (int it = 0; it < items.length(); it++) {
            JSONObject contactItem = items.getJSONObject(it);
            String userName = contactItem.getString("name");


            JSONArray item = contactItem.getJSONArray("items");

            for (int i = 0; i < items.length(); i++) {
                String email = item.getJSONObject(i).getString("email");
                System.out.println(email);
            }

            System.out.println("Name----------" + userName);
        }
    }
}

甚至更好更简单的是使用JsonPath

对于你的json来说就像这样

String substring = JsonPath.parse(json).read("$.example.subThing", String.class);
String anotherstring = JsonPath.parse(json).read("$.anotherThing", String.class);