解析配置单元的json输出

解析配置单元的json输出,json,parsing,limesurvey,Json,Parsing,Limesurvey,我需要每5分钟自动将新案例(Hive项目)移动到LimesSurvey。我已经找到了向LimeSurvey添加响应的API脚本的基础。但是,我不知道如何只添加新案例,以及如何解析配置单元案例数据以获取我想要添加的信息 到目前为止,我一直在使用curl从hive获取病例列表。以下是命令和输出 curl -su user:pass http://myhiveIPaddress:9000/api/case [{“createdBy”:“charlie”,“owner”:“charlie”,“crea

我需要每5分钟自动将新案例(Hive项目)移动到LimesSurvey。我已经找到了向LimeSurvey添加响应的API脚本的基础。但是,我不知道如何只添加新案例,以及如何解析配置单元案例数据以获取我想要添加的信息

到目前为止,我一直在使用curl从hive获取病例列表。以下是命令和输出

curl -su user:pass http://myhiveIPaddress:9000/api/case
[{“createdBy”:“charlie”,“owner”:“charlie”,“createdAt”:149874936987,“startDate”:149874930000,“title”:“test”,“caseId”:1,“user”:“charlie”,“status”:“Open”,“description”:“testtest”,“tlp”:2,“tags”:[],“flag”:false,“severity”:1,“metrics”:{“处理程序拾取警报的时间”:2,“从打开到关闭的时间”:4,“从泄露到发现的时间”:6},“updatedBy:“charlie”,“updatedAt:”14987517577,“id:”AVz0bH7yqaVU6WeZlx3w“,”U类型“:”case“,”createdBy“,”charlie“,”所有者“,”charlie“,”标题“,”TestTestTest“,”caseId:”3,“description:”ddd“,”用户“:”charlie“,”状态“:”打开“,”createdAt:”149946483328,“起始日期“,”149446440000,“严重性”:2,“tlp:”2,“标签“,”false“,”id:”AV0d-DZ0VXNJ8Z HI“,”U类型“,”案例“},{createdBy:“charlie”,“owner:“charlie”,“createdAt:”1499268177619,“title:”测试“,”用户“,”charlie”,“status:”打开“,”caseId:”2,“startDate:”149926812000,“tlp:”2,“tags:”,“flag:”false,“description:”s”,“severity:”1,“metrics:“{“从打开到关闭的时间”:2,“处理程序拾取警报的时间”:3,“从泄露到发现的时间”:null},”更新人“:”查理“,”更新日期“:”149926820325,“id:”AV0TWOIinKQtYP_yBYgG“,”类型“:”案例“}]

每个字段由分隔符},{分隔

关于解析每个案例中的特定信息,我以前尝试只使用cut命令。这主要在我达到“度量”之前起作用;它并不总是对度量起作用,因为它们不会总是以相同的顺序列出

我已经向我的老板寻求帮助,他告诉我这个命令可能会让我朝着正确的方向前进,只在调查中添加新的蜂巢病例,但我仍然很迷茫,希望避免再次要求太多

curl -su user:pass http://myhiveIPaddress:9000/api/case | sed 's/},{/\n/g' | sed 's/\[{//g' | sed 's/}]//g' | awk -F '"caseId":' {'print $2'} | cut -f 1 -d , | sort -n | while read line; do echo '"caseId":'$line; done
基本上,我是在我的头的方式,我觉得我不知道我在做什么。如果我需要澄清什么,或者如果它会帮助我张贴我的API脚本到目前为止,请让我知道。
更新
下面是我想写的脚本的潜在逻辑

获取蜂巢案例列表(卷曲…)
读取每个字段,以},{
读取每个字段时,检查/tmp/addedHiveCases以查看字段的caseId是否已经存在
-->如果文件中不存在,请将case添加到limesurvey,并将caseId添加到/tmp/addedHiveCases
-->如果确实存在,请跳到下一个字段


为什么您认为字段由“},{”分隔符分隔

/api/case
api的响应是一种有效的JSON格式,其中列出了案例


您可以使用Python脚本来使用API吗?如果可以,我可以帮助您编写所需的脚本。

为想要的脚本添加了伪代码。如果有人能够提供帮助,我将不胜感激。我为添加对limesurvey的响应而编写的基本脚本是php,但我会接受我能得到的任何帮助。您的意思是——它们不以“}”分隔吗{“?第一个字段以…”case“}结尾,第二个字段以{“createdBy”:…感谢您的响应!是的,但内容是JSON格式的:由逗号分隔的键/值对列表。您可以使用JSON库使用PHP解析该响应。请注意,有一个称为Hive4py(python库)的库。”这有助于使用Hive APIsSo,通过研究使用php解析json,如您所述,我发现了php命令json_decode。它确实有助于清理响应并使其更易于阅读,但我仍然不确定从这里走到哪里。如果可能的话,我希望使用php而不是python,因为我添加响应的api在ph中p、 我能为您提供什么帮助?如果您能解析JSON,那么您可以获取
caseId
字段,并检查它是否已导入您的
/tmp/addedHiveCases
文件等。。。