使用JXPathContext/java通过Xpath解析json对象
我想用java中的xpath解析json对象。我尝试了以下方法:使用JXPathContext/java通过Xpath解析json对象,java,json,xpath,Java,Json,Xpath,我想用java中的xpath解析json对象。我尝试了以下方法: JSONObject obj=new-JSONObject(“{”firstName\”:“John\”,“lastName\”:“doe\”,“age\”:26,““address\”:{”streetAddress\“:“naiststreet\”,“city\”:“Nara\”,“postalCode\”:“630-0192\”,“phoneumbers\”:[{{type\”:“type\”:“iPhone\”,“num
JSONObject obj=new-JSONObject(“{”firstName\”:“John\”,“lastName\”:“doe\”,“age\”:26,““address\”:{”streetAddress\“:“naiststreet\”,“city\”:“Nara\”,“postalCode\”:“630-0192\”,“phoneumbers\”:[{{type\”:“type\”:“iPhone\”,“number\”,“number\”:“0123-4567-8888\”,“type\”,“home\”:“home\”,“:“home\”,“home\”,“home\”,“home\”,“home\”,“:”,“:”,“:”,“:”,“,”,“,”,”,“;
JXPathContext=JXPathContext.newContext(obj);
迭代器i=context.iterate(“phoneNumbers[0]/type”)代码>正如注释中强调的,XPath是错误的,因为索引以1开头
第二个技巧是对JSONObject调用“toMap”。
JXPath不知道如何处理JSONObject,但可以处理映射
JSONObject obj=new-JSONObject(“{”firstName\”:“John\”,“lastName\”:“doe\”,“age\”:26,““address\”:{”streetAddress\“:“naiststreet\”,“city\”:“Nara\”,“postalCode\”:“630-0192\”,“phoneumbers\”:[{{type\”:“type\”:“iPhone\”,“number\”,“number\”:“0123-4567-8888\”,“type\”,“home\”:“home\”,“:“home\”,“home\”,“home\”,“home\”,“home\”,“:”,“:”,“:”,“:”,“,”,“,”,”,“;
JXPathContext=JXPathContext.newContext(obj.toMap());
迭代器i=context.iterate(“phoneNumbers[1]/type”);
这是关于XPath还是关于JsonPath?XPath会更好。但是使用JsonPath也可以。我不知道API,但是使用XPath时,索引以1
开始,而不是以0
开始,所以假设XPath约定路径应该是phoneNumbers[1]/type
。