Skocz do zawartości
Pecetowicz Forum komputerowe

Parsowanie JSON w JS


Rekomendowane odpowiedzi

Mam cały katalog plików JSON.

W innym folderze tworzę plik JS z którego chcę wydostać zawartość w celu analizy na ekranie

W kodzie JS mam: 

try {
    var ps = JSON.parse(fc).toString();
    console.log(ps);
} catch (e) {
    console.log(e);
}

Konsola IDE:

/usr/local/bin/node "/Users/wlisik/Library/Mobile Documents/com~apple~CloudDocs/git/Utils/js/cve-api.js"
SyntaxError: Unexpected token o in JSON at position 1
    at JSON.parse (<anonymous>)
    at Object.<anonymous> (/Users/wlisik/Library/Mobile Documents/com~apple~CloudDocs/git/Utils/js/cve-api.js:21:19)
    at Module._compile (internal/modules/cjs/loader.js:1015:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1035:10)
    at Module.load (internal/modules/cjs/loader.js:879:32)
    at Function.Module._load (internal/modules/cjs/loader.js:724:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)
    at internal/main/run_main_module.js:17:47

Process finished with exit code 0

Google podaje miliard rozwiązań,. ale żadne nie działa.

Jeśli zamiast 

try {
    var ps = JSON.parse(fc).toString();
    console.log(ps);
} catch (e) {
    console.log(e);
}

dam 

try {
    var ps = JSON.stringify(fc);
    console.log(ps);
} catch (e) {
    console.log(e);
}

to wtedy konsola wypluwa zawartość JSON, ale w postaci niesformatowanej:

/usr/local/bin/node "/Users/wlisik/Library/Mobile Documents/com~apple~CloudDocs/git/Utils/js/cve-api.js"
{"properties":{"filePath":{"type":"string","pattern":"[a-zA-Z/]"},"fileName":{"type":"string","pattern":"[a-zA-Z]"},"cveName":{"type":"string","minLength":10},"cveNumber":{"type":"integer","format":"upper"},"cveDescription":{"type":"string","contentEncoding":"UTF-8","minLength":64,"maxLength":256},"cveReferences":{"type":"object","format":"URL","contentMediaType":"http/eq"},"cveCna":{"type":"string","minLength":10,"maxLength":64},"cveCreated":{"type":"object"}},"readOnly":true,"required":["filePath","fileName","cveCna","cveCreated","cveDescription","cveName","cveNumber","cveReferences"]}

Process finished with exit code 0

 

Edytowane przez Wojtek L
Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Ekspert
Napisano (edytowane)

Masz cały katalog plików JSON i próbujesz prasować je do JSON. Gdzie jest tutaj sens?

14 minut temu, Wojtek L napisał:

var ps = JSON.parse(fc).toString();

toString tutaj również nie jest potrzebny.

14 minut temu, Wojtek L napisał:

dam 



try {
    var ps = JSON.stringify(fc);
    console.log(ps);
} catch (e) {
    console.log(e);
}

to wtedy konsola wypluwa zawartość JSON, ale w postaci niesformatowanej

JSON.stringify konwertuje dane z JSONa na zwykły tekst, więc jest to jak najbardziej prawidłowe zachowanie.

W skrócie:

  • JSON.parse(X) - Konwertuje ze zwykłego tekstu na JSON,
  • JSON.stringify(X) - Konwertuje JSON na zwykły tekst
Edytowane przez aXenDev
Odnośnik do odpowiedzi
Udostępnij na innych stronach

Problem wciąż nierozwiązany? Dodaj swoją odpowiedź

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto. Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...