groovy 从文本中获取Json值

xjreopfe  于 2022-11-01  发布在  其他
关注(0)|答案(2)|浏览(168)

我有一个REST响应,其中包含文本和JSON值。我需要从JSON值中获取uniqueId,最好的方法是什么?
我的JSON非常大,但看起来像这样:
paymentResponse =已将您的自定义事务json发布到主题env_txn_endtoend_01最终json:{“事务处理标识”:空,“信封”:{“唯一标识”:234234_2344432_23442”,“根标识”:“34534554534”等...}}
如何获得此唯一ID值= 234234_2344432_23442?

lpwwtiir

lpwwtiir1#

有许多库可以帮助进行Json序列化和反序列化。Jackson Object Mapper是最常用的库之一。
代码应该是这样的,首先你需要Java Pojo来表示你的json对象,例如,让我们考虑this tutorial中的这个例子,在这里你可以从一个Car json字符串创建一个Car Java对象。

ObjectMapper objectMapper = new ObjectMapper();
String json = "{ \"color\" : \"Black\", \"type\" : \"BMW\" }";
Car car = objectMapper.readValue(json, Car.class);  // you should have a Car Class(Pojo) with color, and type attributes
pvabu6sv

pvabu6sv2#

最终json:{“事务处理标识”:空,“信封”:{“唯一标识”:234234_2344432_23442”,“根标识”:“34534554534”等...}}
如何获取此唯一ID值= 234234_2344432_23442
你可以这样做:

import groovy.json.JsonSlurper

...

String jsonString = '{"txnId":null, "envelope":{"uniqueId":"234234_2344432_23442","rootID":"34534554534"}}'
def slurper = new JsonSlurper()
def json = slurper.parseText(jsonString)

def envelope = json.envelope

String rootId = envelope.rootID
assert rootId == '34534554534'

String uniqueId = envelope.uniqueId
assert uniqueId == '234234_2344432_23442'

相关问题