jsonUtils.tsx 791 B

123456789101112131415161718192021222324252627282930313233343536
  1. import {jsonrepair} from 'jsonrepair';
  2. export const isValidJson = (str: string) => {
  3. try {
  4. JSON.parse(str);
  5. } catch (e) {
  6. return false;
  7. }
  8. return true;
  9. };
  10. export function prettyPrintJsonString(json: string): {
  11. failed: boolean;
  12. isTruncated: boolean;
  13. prettifiedQuery: string;
  14. } {
  15. try {
  16. return {
  17. prettifiedQuery: JSON.stringify(JSON.parse(json), null, 4),
  18. isTruncated: false,
  19. failed: false,
  20. };
  21. } catch {
  22. // Attempt to repair the JSON
  23. try {
  24. const repairedJson = jsonrepair(json);
  25. return {
  26. prettifiedQuery: JSON.stringify(JSON.parse(repairedJson), null, 4),
  27. isTruncated: true,
  28. failed: false,
  29. };
  30. } catch {
  31. return {prettifiedQuery: json, isTruncated: false, failed: true};
  32. }
  33. }
  34. }