Summary: | JSONPathPostProcessor not evaluating correctly | ||
---|---|---|---|
Product: | JMeter - Now in Github | Reporter: | Michael Chirlin <michael.chirlin> |
Component: | Main | Assignee: | JMeter issues mailing list <issues> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | p.mouawad |
Priority: | P2 | ||
Version: | 3.0 | ||
Target Milestone: | --- | ||
Hardware: | All | ||
OS: | All | ||
Attachments: |
Extract JSON Objects as JSON Strings
Extract JSON Objects as JSON Strings Extract JSON Objects as JSON Strings |
Description
Michael Chirlin
2016-05-21 03:45:24 UTC
Created attachment 33861 [details]
Extract JSON Objects as JSON Strings
Extract JSON Objects as JSON Strings.
The old implementation gave a Map instance back for the described case.
Created attachment 33862 [details]
Extract JSON Objects as JSON Strings
Keep PostProcessor clean by moving the stringification into the JSONManager.
It would be good, if the interface of JSONManager would show, that it returns a list of Strings. But as it is a public interface it seems to be to late to change it now.
There is an additional use case in which the extractedObject is an instanceof JSONArray rather than a Map (JSONObject). I propose updating the JSONManager stringifyJSONObject the following: private String stringifyJSONObject(Object obj) { if (obj instanceof JSONArray) { return ((JSONArray) obj).toJSONString(); } else if (obj instanceof Map) { return new JSONObject((Map<String, ?>) obj).toJSONString(); } return obj == null ? "" : obj.toString(); //$NON-NLS-1$ } An example would be: { "saveInto": [ "string1" ] } using JSONPath: $.saveInto I'm not sure how you create the attachments or I would do it for you. Created attachment 33882 [details]
Extract JSON Objects as JSON Strings
My old patch should have worked with your use case already. But to be on the safe side, I added the case for JSONArray.
Ok for patch. Thanks Felix Date: Tue May 31 18:19:48 2016 New Revision: 1746310 URL: http://svn.apache.org/viewvc?rev=1746310&view=rev Log: Format extracted JSON Objects in JSON Post Processor correctly as JSON. Bugzilla Id: 59609 Added: jmeter/trunk/test/src/org/apache/jmeter/extractor/TestJSONPostProcessor.java Modified: jmeter/trunk/src/components/org/apache/jmeter/extractor/json/jsonpath/JSONManager.java jmeter/trunk/src/components/org/apache/jmeter/extractor/json/jsonpath/JSONPostProcessor.java jmeter/trunk/xdocs/changes.xml This issue has been migrated to GitHub: https://github.com/apache/jmeter/issues/3992 |