我有以下JSON:
{
"_rallyAPIMajor": "2",
"_rallyAPIMinor": "0",
"_ref": "https://rally1.rallydev.com/slm/webservice/v2.0/task/115664163908",
"_refObjectUUID": "3595aeb8-f99e-4e03-a842-9a2960833c1d",
"_objectVersion": "3",
"_refObjectName": "My-Task Akshay...Task created for testing",
"FormattedID": "TA72018",
"Name": "My-Task Akshay...Task created for testing",
"Estimate": 10.0,
"State": "Defined",
"WorkProduct": {
"_rallyAPIMajor": "2",
"_rallyAPIMinor": "0",
"_ref": "https://rally1.rallydev.com/slm/webservice/v2.0/hierarchicalrequirement/115663481788",
"_refObjectUUID": "f760c23e-5d57-4b6e-bd4c-d6f1d2c26900",
"_objectVersion": "6",
"_refObjectName": "UserStory-2-2Test",
"FormattedID": "US35327",
"DirectChildrenCount": 0,
"Name": "UserStory-2-2Test",
"_type": "HierarchicalRequirement"
},
"_type": "Task"
}
我想要WorkProduct中的元素Name,State和其他元素Name。 我的java代码到目前为止我一直在尝试
for(JsonElement result : taskresponse.getResults())
{
JsonObject results = result.getAsJsonObject();
System.out.println("Task :"+results.get("Name").getAsString()+
"\n State :"+results.get("State").getAsString()+" User Story:"+results.get("WorkProduct.Name").getAsString());
System.out.println(results);
}
答案 0 :(得分:1)
您可以尝试以下代码:
import org.json.JSONObject;
public class JSONParser {
public static void main(String[] args) throws Exception {
JSONObject jsonObject = new JSONObject("{\n"
+ " \"_rallyAPIMajor\": \"2\",\n"
+ " \"_rallyAPIMinor\": \"0\",\n"
+ " \"_ref\": \"https://rally1.rallydev.com/slm/webservice/v2.0/task/115664163908\",\n"
+ " \"_refObjectUUID\": \"3595aeb8-f99e-4e03-a842-9a2960833c1d\",\n"
+ " \"_objectVersion\": \"3\",\n"
+ " \"_refObjectName\": \"My-Task Akshay...Task created for testing\",\n"
+ " \"FormattedID\": \"TA72018\",\n"
+ " \"Name\": \"My-Task Akshay...Task created for testing\",\n"
+ " \"Estimate\": 10.0,\n"
+ " \"State\": \"Defined\",\n"
+ " \"WorkProduct\": {\n"
+ " \"_rallyAPIMajor\": \"2\",\n"
+ " \"_rallyAPIMinor\": \"0\",\n"
+ " \"_ref\": \"https://rally1.rallydev.com/slm/webservice/v2.0/hierarchicalrequirement/115663481788\",\n"
+ " \"_refObjectUUID\": \"f760c23e-5d57-4b6e-bd4c-d6f1d2c26900\",\n"
+ " \"_objectVersion\": \"6\",\n"
+ " \"_refObjectName\": \"UserStory-2-2Test\",\n"
+ " \"FormattedID\": \"US35327\",\n"
+ " \"DirectChildrenCount\": 0,\n"
+ " \"Name\": \"UserStory-2-2Test\",\n"
+ " \"_type\": \"HierarchicalRequirement\"\n"
+ " },\n"
+ " \"_type\": \"Task\"\n"
+ "}");
String state = jsonObject.getString("State");
String name = jsonObject.getString("Name");
String nameNested = jsonObject.getJSONObject("WorkProduct").getString("Name");
System.out.println("state: " + state);
System.out.println("name: " + name);
System.out.println("nameNested: " + nameNested);
}
}
如果您正在使用maven,则可以通过以下方式添加库依赖项:
<dependencies>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20160810</version>
</dependency>
</dependencies>
答案 1 :(得分:0)
String JSON_STRING=" {
"_rallyAPIMajor": "2",
"_rallyAPIMinor": "0",
"_ref":
"https://rally1.rallydev.com/slm/webservice/v2.0/task/115664163908",
"_refObjectUUID": "3595aeb8-f99e-4e03-a842-9a2960833c1d",
"_objectVersion": "3",
"_refObjectName": "My-Task Akshay...Task created for testing",
"FormattedID": "TA72018",
"Name": "My-Task Akshay...Task created for testing",
"Estimate": 10.0,
"State": "Defined",
"WorkProduct": {
"_rallyAPIMajor": "2",
"_rallyAPIMinor": "0",
"_ref": "https://rally1.rallydev.com/slm/webservice/v2.0/hierarchicalrequirement/115663481788",
"_refObjectUUID": "f760c23e-5d57-4b6e-bd4c-d6f1d2c26900",
"_objectVersion": "6",
"_refObjectName": "UserStory-2-2Test",
"FormattedID": "US35327",
"DirectChildrenCount": 0,
"Name": "UserStory-2-2Test",
"_type": "HierarchicalRequirement"
},
"_type": "Task"
}
"
// JSON Parsing code
JsonObject jsonobject =new JsonObject(JSON_STRING);
JsonObject jsonobject1 =jsonobject.getJsonObject("WorkProduct");
String Name=jsonobject1.getString("Name");
答案 2 :(得分:0)
我知道了。
for(JsonElement result : taskresponse.getResults())
{
JsonObject results = result.getAsJsonObject();
System.out.println("Task :"+results.get("Name").getAsString()+
"\n State :"+results.get("State").getAsString()+" User Story:"+results.get("WorkProduct").getAsJsonObject().get("Name"));
}
使用results.get("WorkProduct").getAsJsonObject().get("Name")