05-07-2021 09:05 AM
I am developing a custom SNAP that makes HTTP request and gets JSON response in return. The response is array of objects. In order to right it to document , currently it only shows up if I convert the response to string in following manner:
Map<String, Object> data = new LinkedHashMap<>();
data.put(“Response”, response);
outputViews.write(documentUtility.newDocumentFor(document, data));
But I’d like to instead preview the response in standard json format in outputview. Any idea how this can be achieved ? Any help would be appreciated . Thank you!
Solved! Go to Solution.
05-11-2021 09:45 AM
Yes, you’ll want to use the Jackson library’s ObjectMapper class for that.
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.core.type.TypeReference;
...
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
private static final TypeReference<Object> TYPE_REF = new TypeReference<Object>() {};
...
Object parsedResponse = OBJECT_MAPPER.readValue(response, TYPE_REF);
Note there are other versions of the readValue method that take a Reader or InputStream, which means you might be able to avoid reading the entire response as a String.
Hope that helps.
05-11-2021 10:10 AM
You don’t need to add parsedResponse to a Map unless for some reason you need the output structured that way. You can just directly use parsedResponse as the output document’s data:
outputViews.write(documentUtility.newDocumentFor(document, parsedResponse));
05-11-2021 10:21 AM
Your solution worked like a charm!! Thank you @ptaylor
08-25-2021 12:57 PM
After making few changes, I deployed my snap pack and suddenly do not see property UI for any of the snaps. I tried clicking on snaps multiple times but no luck. Can someone please help as to what must be going on there ?
08-25-2021 01:20 PM
Can you please provide more details about what you are seeing?
What sort of changes did you make?
Did you make any updates to the version metadata?
How did you deploy the new snap pack?
08-25-2021 01:29 PM
@DharaSP the web console (right-click inspect …) may also shed some clues …