您好我是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()
?
答案 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);