자바 스크립트 | json 구문 분석

XTRUST.ORG

filereader API를 사용하고 있습니다.

if (window.File && window.FileReader && window.FileList && window.Blob) {

} else {

    alert('The File APIs are not fully supported in this browser.');
    return;
}   

input = document.id('fileinput');

if (!input) {
    alert("Um, couldn't find the fileinput element.");
} else if (!input.files) {
    alert("This browser doesn't seem to support the `files` property of file inputs.");
} else if (!input.files[0]) {
    alert("Please select a file before clicking 'Load'");               
} else {
    file    = input.files[0];
    fr      = new FileReader();     
    fr.onload = function () {
        console.log(JSON.parse(fr.result));
    }

    fr.readAsText(file); 
}

내 콘솔에 다음이 표시됩니다.

{"id":"2","name":"Links1","position":"1","author":"Demo","email":"[email protected]","description":"","html":"<div class=\"units-row-end\" id=\"links\"><\/div>","css":"","js":"var out = '<a href=\"#!index\" class=\"home\">Home<\/a> ';\nout += user.type ? '<a href=\"#!logout\">Logout<\/a> ' : '<a href=\"#!login\">Login<\/a> ';\nout += user.type ==2 ? '<a href=\"#!admin?template=overview\">Account<\/a> ' : user.type == 1 ? '<a href=\"#!user?template=overview\">Account<\/a> ' : '';\nout += user.type !=2 ? '<a href=\"#!cart\">Cart<\/a>' : '';\n\ndocument.id('links').set('html', out);","status":"1"}

이 출력은 내 콘솔의 개체가 아닙니다! 왜? 위의 문자열을 복사하려는 경우 http://json.parser.online.fr/ 이 문자열은 개체로 변환됩니다. 어디에 문제가 있습니까?

PS 내 파일 내용 (fr. 결과) :

"{\"id\":\"2\",\"name\":\"Links1\",\"position\":\"1\",\"author\":\"Demo\",\"email\":\"[email protected]\",\"description\":\"\",\"html\":\"<div class=\\\"units-row-end\\\" id=\\\"links\\\"><\\\/div>\",\"css\":\"\",\"js\":\"var out = '<a href=\\\"#!index\\\" class=\\\"home\\\">Home<\\\/a> ';\\nout += user.type ? '<a href=\\\"#!logout\\\">Logout<\\\/a> ' : '<a href=\\\"#!login\\\">Login<\\\/a> ';\\nout += user.type ==2 ? '<a href=\\\"#!admin?template=overview\\\">Account<\\\/a> ' : user.type == 1 ? '<a href=\\\"#!useraccount?template=overview\\\">Account<\\\/a> ' : '';\\nout += user.type !=2 ? '<a href=\\\"#!cart\\\">Cart<\\\/a>' : '';\\n\\ndocument.id('links').set('html', out);\",\"status\":\"1\"}"
알바로 곤잘레스

실제 파일 내용 ( fr.resultFirefox 콘솔로 덤프 하는 대신 텍스트 편집기로 파일을 열 때 표시됨 )이 정확히 다음과 같은 경우 :

"{\"id\":\"2\",\"name\":\"Links1\",\"position\":\"1\",\"author\":\"Demo\",\"email\":\"[email protected]\",\"description\":\"\",\"html\":\"<div class=\\\"units-row-end\\\" id=\\\"links\\\"><\\\/div>\",\"css\":\"\",\"js\":\"var out = '<a href=\\\"#!index\\\" class=\\\"home\\\">Home<\\\/a> ';\\nout += user.type ? '<a href=\\\"#!logout\\\">Logout<\\\/a> ' : '<a href=\\\"#!login\\\">Login<\\\/a> ';\\nout += user.type ==2 ? '<a href=\\\"#!admin?template=overview\\\">Account<\\\/a> ' : user.type == 1 ? '<a href=\\\"#!useraccount?template=overview\\\">Account<\\\/a> ' : '';\\nout += user.type !=2 ? '<a href=\\\"#!cart\\\">Cart<\\\/a>' : '';\\n\\ndocument.id('links').set('html', out);\",\"status\":\"1\"}"

... 문제를 설명합니다.

우선, JSON 유효성 검사기 가 공개하는 것처럼 실제로 유효한 JSON이 없습니다 . JSON 데이터 형식에서 최상위 요소는 객체 또는 배열이어야하며 귀하의 요소는 문자열입니다. 그러나 JSON.parse () 메서드는 분명히 이러한 JSON 하위 요소의 경우를 허용합니다 (아마도이를 디코딩 할 수 있다는 것이 유용하고 구현하기 쉬운 기능이기 때문일 것입니다).

그러나 하나의 문자열 만 가지고 있기 때문에 디코딩 후 얻는 것이 바로 문자열입니다. JSON에 관한 한 데이터 형식은 다음과 다르지 않습니다.

"Hello, World!"

JSON 파일 생성 하는 데 사용하는 코드에 문제가 있다고 생각 합니다. 출력을 두 번 인코딩하는 것 같습니다 . 아마도 다음과 같이 보일 것입니다.

{"id":"2","name":"Links1","position":"1","author":"Demo","email":"[email protected]","description":"","html":"<div class=\"units-row-end\" id=\"links\"><\/div>","css":"","js":"var out = '<a href=\"#!index\" class=\"home\">Home<\/a> ';\nout += user.type ? '<a href=\"#!logout\">Logout<\/a> ' : '<a href=\"#!login\">Login<\/a> ';\nout += user.type ==2 ? '<a href=\"#!admin?template=overview\">Account<\/a> ' : user.type == 1 ? '<a href=\"#!useraccount?template=overview\">Account<\/a> ' : '';\nout += user.type !=2 ? '<a href=\"#!cart\">Cart<\/a>' : '';\n\ndocument.id('links').set('html', out);","status":"1"}

선행 및 후행 따옴표가 사라졌습니다 (모든 백 슬래시 이스케이프 시퀀스와 함께). 이렇게하면 인코딩 된 개체가 있고 디코딩 된 개체가 생성됩니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

JSON 자바 스크립트 구문 분석 문자열

분류에서Dev

중첩 된 JSON 응답 자바 스크립트 구문 분석

분류에서Dev

고급 자바 스크립트 JSON 구문 분석

분류에서Dev

JSON 객체 구문 분석 자바 스크립트

분류에서Dev

자바 스크립트 (Ajax) JSON 값 구문 분석

분류에서Dev

JSON 구문 분석 자바 스크립트 : NAN으로 표시된 문자열

분류에서Dev

자바 스크립트로 Json을 올바르게 구문 분석

분류에서Dev

자바 스크립트로 JSON 구문 분석 된 SOAP 봉투에 액세스

분류에서Dev

자바 스크립트에서 JSON을 구문 분석 할 수 없습니다.

분류에서Dev

자바 스크립트 : 따옴표 무시하고 JSON 구문 분석

분류에서Dev

JSON 구문 분석을위한 자바 스크립트 변수 범위

분류에서Dev

자바 스크립트를 사용하여 중첩 된 JSON 구문 분석

분류에서Dev

JSON 구문 분석-자바 스크립트-정의되지 않음

분류에서Dev

자바 스크립트에서 일반 ID 참조 JSON 구문 분석

분류에서Dev

문자열 페이로드를 Json으로 구문 분석하는 자바 스크립트

분류에서Dev

자바 스크립트 : 문자열 내에서 json 객체의 배열 구문 분석

분류에서Dev

JSON.parse는 문자열 자바 스크립트의 부모 개체 만 구문 분석합니다.

분류에서Dev

JSON.parse는 문자열 자바 스크립트의 부모 개체 만 구문 분석합니다.

분류에서Dev

자바 스크립트에서 JSON 문자열을 어떻게 구문 분석 할 수 있습니까?

분류에서Dev

자바 스크립트에서 JSON 문자열을 어떻게 구문 분석 할 수 있습니까?

분류에서Dev

여러 json 문자열을 자바 스크립트의 하나의 객체로 구문 분석

분류에서Dev

문자열에 대한 bash 스크립트 변수에서 json 구문 분석

분류에서Dev

자바 스크립트 구문 분석 텍스트 지원

분류에서Dev

Python에서 자바 스크립트 텍스트 구문 분석

분류에서Dev

자바 스크립트로 JSON 파일을 올바르게로드하고 구문 분석

분류에서Dev

자바 스크립트 푸시를 사용하여 JSON 데이터 구문 분석-div 자동 닫기 방지

분류에서Dev

자바 스크립트 날짜, 월말 구문 분석 문제

분류에서Dev

자바 스크립트에서 수준별로 이진 트리와 같은 JSON 개체 수준 구문 분석

분류에서Dev

자바 스크립트 : 이상한 JSON 페이로드 구문 분석 도움말

Related 관련 기사

  1. 1

    JSON 자바 스크립트 구문 분석 문자열

  2. 2

    중첩 된 JSON 응답 자바 스크립트 구문 분석

  3. 3

    고급 자바 스크립트 JSON 구문 분석

  4. 4

    JSON 객체 구문 분석 자바 스크립트

  5. 5

    자바 스크립트 (Ajax) JSON 값 구문 분석

  6. 6

    JSON 구문 분석 자바 스크립트 : NAN으로 표시된 문자열

  7. 7

    자바 스크립트로 Json을 올바르게 구문 분석

  8. 8

    자바 스크립트로 JSON 구문 분석 된 SOAP 봉투에 액세스

  9. 9

    자바 스크립트에서 JSON을 구문 분석 할 수 없습니다.

  10. 10

    자바 스크립트 : 따옴표 무시하고 JSON 구문 분석

  11. 11

    JSON 구문 분석을위한 자바 스크립트 변수 범위

  12. 12

    자바 스크립트를 사용하여 중첩 된 JSON 구문 분석

  13. 13

    JSON 구문 분석-자바 스크립트-정의되지 않음

  14. 14

    자바 스크립트에서 일반 ID 참조 JSON 구문 분석

  15. 15

    문자열 페이로드를 Json으로 구문 분석하는 자바 스크립트

  16. 16

    자바 스크립트 : 문자열 내에서 json 객체의 배열 구문 분석

  17. 17

    JSON.parse는 문자열 자바 스크립트의 부모 개체 만 구문 분석합니다.

  18. 18

    JSON.parse는 문자열 자바 스크립트의 부모 개체 만 구문 분석합니다.

  19. 19

    자바 스크립트에서 JSON 문자열을 어떻게 구문 분석 할 수 있습니까?

  20. 20

    자바 스크립트에서 JSON 문자열을 어떻게 구문 분석 할 수 있습니까?

  21. 21

    여러 json 문자열을 자바 스크립트의 하나의 객체로 구문 분석

  22. 22

    문자열에 대한 bash 스크립트 변수에서 json 구문 분석

  23. 23

    자바 스크립트 구문 분석 텍스트 지원

  24. 24

    Python에서 자바 스크립트 텍스트 구문 분석

  25. 25

    자바 스크립트로 JSON 파일을 올바르게로드하고 구문 분석

  26. 26

    자바 스크립트 푸시를 사용하여 JSON 데이터 구문 분석-div 자동 닫기 방지

  27. 27

    자바 스크립트 날짜, 월말 구문 분석 문제

  28. 28

    자바 스크립트에서 수준별로 이진 트리와 같은 JSON 개체 수준 구문 분석

  29. 29

    자바 스크립트 : 이상한 JSON 페이로드 구문 분석 도움말

뜨겁다태그

보관