我有一个JSON文件,里面有很多对象和数组以及数组中的对象。
我在JSON path-data . offer . travels[1]. routes中的routes对象中有一个源和目的地之间的路由列表。
在每个路由对象中都有一个名为支路的数组,其长度可以是1、2或3。我编写了一个带有for循环的方法,在路由对象中循环并返回第一个只有1条支路的路由索引。但是它给出了一个错误。
为此编写了一个for循环。这是代码
public JSONObject PrepareProvBookingRequestBody() throws IOException, ParseException {
File jsonExample = new File(System.getProperty("user.dir"),"\\JSONOutputFiles\\ThreeAdults_TwoCh_StdRet_PUB\\ThreeAdults_TwoCh_StdRet_PUB_JS.json");
JsonPath jsonPath = new JsonPath(jsonExample);
int routeindexOutbound=0;
int routeindexInbound=0;
List<Object> routesOutbound = jsonPath.getList("data.offer.travels[1].routes");
int NoOfOutboundRoutes= routesOutbound.size();
for (int i=0; i<NoOfOutboundRoutes; i++)
{
JsonArray legs = jsonPath.get("data.offer.travels[1].routes[i].legs");
int NoOfLegs = legs.size();
if (NoOfLegs==1) {
routeindexOutbound=i;
break;
}
}
String DepartureDate = jsonPath.getString("data.offer.travels[1].routes[routeindexOutbound].legs[0].service_schedule_date");
这是我得到的错误
java.lang.IllegalArgumentException: The parameter "i" was used but not
defined. Define parameters using the JsonPath.params(...) function
有人能告诉我哪里出错了吗?
您需要使用 jsonPath.param(“i”,i)来
定义参数...本文档包含更多示例
我使用jayway JsonPath库使用给定的路径解析JSON。如果我给出正确的路径,我就能得到字符串值。但是,如果路径是数组,我想在给出路径时得到贴图列表。例如,我有一个JSON,如下所示: 下面是我用来解析json的代码。 如果我给出路径,我正在获取字符串,但我需要地图列表。下面是我使用jsonpath解析Json的代码。 任何人建议适当的方法来得到我所期望的。
我有一个json身体如下- 无论何时执行任何代码,我都要检查上面的“tx”、“,“origin”值在我生成的json中是否可用。而且,它应该是连续的,比如(tx.origin)。如果它可用,它将返回一些东西。我可以得到任何一个值-。令牌[?(@.value==“tx”)]。值我需要连续检查所有3个值。 你们能帮帮我吗?提前谢谢。
我需要使用jsonpath解析例子1中的json,类似于下面的例子2。但找不到路径,因为json的类型是字符串。请建议我一些可能的方法来解析json字符串,以动态地修改colourCode的值。 例1: 例2: Jsonpath: 这将返回"iPhone"
问题内容: 我正在与Json.Net解析数组。我正在尝试做的是将名称/值对从数组中拉出,并在解析JObject时将它们分配给特定的变量。 这是数组中的内容: 这是我在C#中获得的东西: 我是JSON和Json.Net的新手,因此它可能是其他人的基本解决方案。我基本上只需要在foreach循环中分配名称/值对,以便可以在前端输出数据。有人做过吗? 问题答案: 您可以这样获得数据值: 小提琴:http
问题内容: 我有一个像这样的JSON文件: 在文件具有根元素之前,我将使用: 代码,但我不认为如何将类编码为根元素是一个数组。 我试过使用: 与: 但是还没有运气。使用这种方法我还能怎么读呢? PS我有这个工作使用: 但是我更想知道如何使用这两种方法(如果可能)。 问题答案: 问题是由放置在数组中的JSON对象(在 每种 情况下)的末尾逗号引起的: 如果删除它们,您的数据将成为 和 应该工作正常。
附言:我用这个来工作: 但我更希望知道如何做到这一点(如果可能的话)与这两种方法。