我正在使用RESTEasy客戶端從API中檢索JSON字符串。該JSON有效載荷看起來是這樣的:在RESTEasy客戶端中提取JSON響應的特定節點
{
"foo1" : "",
"foo2" : "",
"_bar" : {
"items" : [
{ "id" : 1 , "name" : "foo", "foo" : "bar" },
{ "id" : 2 , "name" : "foo", "foo" : "bar" },
{ "id" : 3 , "name" : "foo", "foo" : "bar" },
{ "id" : 4 , "name" : "foo", "foo" : "bar" }
]
}
}
現在,我想只提取對象映射items
節點。攔截JSON響應主體並將其修改爲具有items
作爲根節點的最佳方式是什麼?
我爲我的API方法使用了RESTEasy proxy framework。
的REST客戶端代碼:
ResteasyWebTarget target = client.target("https://"+server);
target.request(MediaType.APPLICATION_JSON);
client.register(new ClientAuthHeaderRequestFilter(getAccessToken()));
MyProxyAPI api = target.proxy(MyProxyAPI.class);
MyDevice[] result = api.getMyDevice();
的RESTEasy代理接口:
public interface MyProxyAPI {
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/device")
public MyDevice[] getMyDevices();
...
}
轉換爲JavaScript對象和檢索它作爲一個對象。 – SaviNuclear
「items」是根源,還是僅僅是你不想映射消息的任何其他元素是重要的?快速查看RestEasy文檔,您是通過JAXB提供程序對Java bean進行自動編組/解組嗎? – dbreaux
@dbreaux是的,我只是不想映射任何其他元素。查看我對OP編輯的簡化實現代碼。我當然可以註冊一個提供者來改變消息體,但是我想知道這樣的提供者的實現是怎麼樣的。 –