另一种方式:jsonfragcenterx2
J振动中心(1)
J振动中心(2)
这样,jsonFragCenter(2)不会提取空的“routeSections”。
一种可能的方法是使用JSonFragmentCenter和ListIndexer的组合
JSONFrimeMnter
列表索引器
注意:如果“routesections”数组为空,结果“name”将是根对象“name”的值,因为根对象也有一个名为“name”的成员。如果有这种情况,在ListIndexer之前检查“routesections”元素的数量。
#我认为我以前的答案没有被移到第一页的顶部。
关于您对json-json[*][路由部分“][0]的查询,现在没有提取“id”。仅提取数组[“RouteSelections”]中的元素。“id”不是数组的一部分,但需要提取。我尝试使用json[*][路由部分“][0][ID”],“ID”身份证件。我还尝试使用2个jsonfragcenter,一个代表“id”,另一个代表名称并合并它们。不管怎样,我都不行。我们能有比这更好的解决方案吗?
对。。。它在第一页的顶部可见。甚至我也有点困惑。
关于您对json-json[*][路由部分“][0]的查询,现在没有提取“id”。仅提取数组[“RouteSelections”]中的元素。“id”不是数组的一部分,但需要提取。我尝试使用json[*][路由部分“][0][ID”],“ID”身份证件。我还尝试使用2个jsonfragcenter,一个代表“id”,另一个代表名称并合并它们。不管怎样,我都不行。我们能有比这更好的解决方案吗?
只是个提醒,重新发送上一个答案。细节可能不同;)
-----
使用这些参数设置尝试jsonFragCenter。
查询提取“routesections”数组的第一个元素(index=0)。
如果原始JSON数据是包含多个对象的数组,将JSON查询替换为以下查询:
JSON[*][路由部分“][0]
我以前的文章没有与浏览器一起显示。你看到了吗?
谢谢。太棒了:)那正是我应该做的。
好啊,使用这些参数设置尝试jsonFragCenter。
查询提取“routesections”数组的第一个元素(index=0)。
如果原始JSON数据是包含多个对象的数组(即{…}{…}……)用这个查询替换JSON查询。
JSON[*][路由部分“][0]
您好!高桥谢谢你对我的忠告和耐心。
我附加的文本文件只是提取的信息之一(30K中的一行)。在这里,我想提取“名字”,在这种情况下-“布伦特交叉购物中心-埃德蒙顿绿色汽车站”。一般来说,“routesections”中的两个数组部分将具有相同的“name”。我想提取第一个。我们怎么能做到?
您发布的文本只包含一个JSON对象,它包含一个名为“name”的字符串成员和两个名为“routesections”和“servicetypes”的数组成员。这些数组的每个元素还包含一个名为“name”的成员。要提取哪些对象?
这是您发布的JSON对象。
“$type”:“tfl.api.presentation.entities.line,tfl.api.presentation.entities“,“ID”:“102”,“姓名”:“102”,“modename”:“总线”,“created”:“2015-12-07t14:16:21.757”,“modified”:“2015-12-07t14:16:21.757”,“linestatus”:[],“routesections”:[“$type”:“tfl.api.presentation.entities.matchedRoute,tfl.api.presentation.entities“,“name”:“布伦特交叉购物中心-埃德蒙顿绿色汽车站”,“direction”:“入站”,“originationname”:“布伦特交叉购物中心”,“destinationname”:“埃德蒙顿绿色汽车站”,“发起人”:“490004282D”,“目的地”:“490009983A”,“servicetype”:“常规”,“$type”:“tfl.api.presentation.entities.matchedRoute,tfl.api.presentation.entities“,“name”:“埃德蒙顿绿色汽车站-布伦特交叉购物中心”,“direction”:“出站”,“originationname”:“埃德蒙顿绿色汽车站”,“destinationname”:“布伦特交叉购物中心”,“发起人”:“490009983g”,“目的地”:“490004282A”,“servicetype”:“常规”,“$type”:“tfl.api.presentation.entities.matchedRoute,tfl.api.presentation.entities“,“name”:“布伦特交叉购物中心-埃德蒙顿绿色汽车站”,“direction”:“入站”,“originationname”:“布伦特交叉购物中心”,“destinationname”:“埃德蒙顿绿色汽车站”,“发起人”:“490004282D”,“目的地”:“490009983A”,“servicetype”:“常规”,“$type”:“tfl.api.presentation.entities.matchedRoute,tfl.api.presentation.entities“,“name”:“埃德蒙顿绿色汽车站-布伦特交叉购物中心”,“direction”:“出站”,“originationname”:“埃德蒙顿绿色汽车站”,“destinationname”:“布伦特交叉购物中心”,“发起人”:“490009983g”,“目的地”:“490004282A”,“servicetype”:“常规”],“servicetypes”:[“$type”:“tfl.api.presentation.entities.lineservicetypeinfo,tfl.api.presentation.entities“,“name”:“常规”,“uri”:“/line/route?IDS=102&servicetypes=regular“”]
我已附上文本格式的文件。我要提取的是“名字”,也就是,在这种情况下“埃德蒙顿绿色汽车站-布伦特交叉购物中心”。
我不知道为什么特性不能被“name”属性值过滤。你能详细描述一下情况吗?
确切地,但是“名字”,与其他人不同的是,他们不会被自己过滤,我不明白为什么!!!!
一种简单的方法是在展平JSON对象之后,用“name”属性值过滤特性。例如:
检测仪:名称与regex^\d匹配+$
此正则表达式与仅由数字组成的字符串匹配。
感谢高桥的建议。这真的很有帮助。
在这之前,如果你看到文件,有两个“名字”,我们需要提取。第一个是数字,另一个是实名(不是数字)。我们能提取没有数字的“名称”吗?它给出了一个问题,因为它不是一个属性,但是一个JSON文件。即使我使用名为的ListExploder,输出为空,输出为空。
谢谢
此外,如果您将jsonFragCenter的“加载键作为属性”和“递归展平对象/数组”参数设置为“是”。您可以删除jsonFlatener。
响应主体是一个JSON数组。您必须使用jsonFragCenter将数组元素转换为单个json对象,在用jsonfrattener压平之前。JSonformatter并不是必需的。
见在这里了解更多关于JSON对象结构的信息。
你好,
首先使用inspector(数据检查器的特性信息窗口)检查jsonFlatener的结果。
此外,我认为在展平有效的JSON对象之前不需要使用JSonFormatter。
高桥