PayloadJSON coerces raw strings into valid JSON response bodies.
(raw string)
| 1340 | |
| 1341 | // PayloadJSON coerces raw strings into valid JSON response bodies. |
| 1342 | func PayloadJSON(raw string) json.RawMessage { |
| 1343 | trimmed := strings.TrimSpace(raw) |
| 1344 | if trimmed == "" { |
| 1345 | return json.RawMessage("null") |
| 1346 | } |
| 1347 | if json.Valid([]byte(trimmed)) { |
| 1348 | return json.RawMessage(trimmed) |
| 1349 | } |
| 1350 | |
| 1351 | encoded, err := json.Marshal(trimmed) |
| 1352 | if err != nil { |
| 1353 | return json.RawMessage("null") |
| 1354 | } |
| 1355 | return json.RawMessage(encoded) |
| 1356 | } |
| 1357 | |
| 1358 | func payloadJSONBytes(raw []byte) json.RawMessage { |
| 1359 | trimmed := bytes.TrimSpace(raw) |