the preferred result would be as follows. the "::key" expression would be filtered out somehow. Server would be set as the root path for the report loop { "objects": { "Server": { "code": 0, "message": "", "class": "Server", "key": "672", "fields": { "name": "some_server_name", "description": "some_server_description", } }, "Server": { "code": 0, "message": "", "class": "Server", "key": "1719", "fields": { "name": "some_server_name", "description": "some_server_description", } }, }, "code": 0, "message": "Found: 2" } the application doing this is iTop v2.x from Combodo. Hopefully, I don't have to be tied to the Webservice Datasource for that application. Other datasource suggestions are welcome.