prosource

구문 오류 예기치 않은 토큰 U JSON

probook 2023. 4. 3. 21:35
반응형

구문 오류 예기치 않은 토큰 U JSON

페이지를 크롬으로 실행하면 "uncatched syntaxerror unexpected token U"라는 오류가 나타납니다.파이어폭스에서는 "JSON.parse: 예기치 않은 문자"라고 표시됩니다.php 파일에서 json 데이터를 반환하고 있는데 반환된 json 문자열이 유효합니다.http://jsonlint.com/에서 확인했습니다.어떤 도움이라도 주시면 감사하겠습니다...감사해요.

반환된 JSON 문자열입니다.

[
    ["1","Pan Africa Market","\"1521 1st Ave, Seattle, WA\"","47.608941","-122.340145","restaurant"],
    ["2","The Melting Pot","14 Mercer St, Seattle, WA","47.624562","-122.356442","restaurant"],
    ["3","Ipanema Grill","1225 1st Ave, Seattle, WA","47.606366","-122.337656","restaurant"],
    ["4","Sake House","230 1st Ave, Seattle, WA","47.612825","-122.34567","bar"],
    ["5","Crab Pot","1301 Alaskan Way, Seattle, WA","47.605961","-122.34036","restaurant"],
    ["6","Mexican Kitchen","2234 2nd Ave, Seattle,WA","47.613975","-122.345467","bar"],
    ["7","Wingdome","1416 E Olive Way, Seattle, WA","47.617215","-122.326584","bar"],
    ["8","Piroshky Piroshky","1908 Pike pl, Seattle, WA","47.610127","-122.342838","restaurant"]
]

는 보통 값이 때 됩니다.JSON.parse는 ★★★★undefined따라서, 이것을 해석하려고 하는 코드를 확인합니다.여기서 나타내는 실제 문자열은 해석하고 있지 않을 가능성이 높습니다.

(MVC 프로젝트에서) 검증 중에 이 메시지를 받았습니다.저는 Validation Message For 요소를 추가하면 문제가 해결되었습니다.

정확히는 jquery.validate.unobtruptive.js의 43번 행이 문제의 원인이 되었습니다.

  replace = $.parseJSON(container.attr("data-valmsg-replace")) !== false;

수 은 JSON.parse입니다).undefined )!!

xyz에서 컴파일된 솔리드 코드를 해석하는 동안 이 문제가 발생했습니다.sol 파일

import web3 from './web3';
import xyz from './build/xyz.json';

const i = new web3.eth.Contract(
  JSON.parse(xyz.interface),
  '0x99Fd6eFd4257645a34093E657f69150FEFf7CdF5'
);

export default i;

철자가 틀렸다.

JSON.parse(xyz.intereface)

아무것도 돌려주지 않았지!

하는 가장 한 후 입니다.id "/"/"name는 기본 되고 있습니다.

@Html.TextBoxFor(m => m, new {Name = ViewData["Name"], id = ViewData["UniqueId"]} )

을 경우ValidationMessageFor 접속합니다.

@Html.ValidationMessageFor(m => m, null, new { data_valmsg_for = ViewData["Name"] })    

이것으로 시간을 절약하시길 바랍니다.

혹시 모르니까

예를 들어 JSON STRING이 있다고 가정해 보겠습니다.아직 JSON 객체 또는 어레이가 아닙니다.

따라서 javascript에서 u는 문자열을 다음과 같이 해석합니다.

var body={
  "id": 1,
  "deleted_at": null,
  "open_order": {
    "id": 16,
    "status": "open"}

var jsonBody = JSON.parse(body.open_order); //HERE THE ERROR NOW APPEARS BECAUSE THE STRING IS NOT A JSON OBJECT YET!!!! 
//TODO SO
var jsonBody=JSON.parse(body)//PASS THE BODY FIRST THEN LATER USE THE jsonBody to get the open_order

var OpenOrder=jsonBody.open_order;

위의 훌륭한 답변

이 에러는 For 루프 내의 JSONArray에서 find 조건을 실행했을 때 발생했습니다.제가 직면한 문제는 for 루프의 값 중 하나가 null을 반환한 결과입니다.그 때문에, 그 속성에 액세스 하려고 했을 때에 실패했습니다.

따라서 JSONAray 내에서 데이터 소스 및 데이터 무결성에 대해 확신이 없는 작업을 수행하는 경우 이 경우 null 및 정의되지 않은 예외를 처리하는 것이 좋습니다.

JSONAray에서 반환된 find 값의 null을 확인하고 예외를 적절하게 처리하여 수정하였습니다.

이게 도움이 될 것 같아서요

이 에러를 해결하는 것은 매우 간단합니다.

원인Javascript는 빈 문자열, 객체 또는 배열을 해석하고 있기 때문에 이 오류를 발생시키고 있습니다.

문제를 해결하려면 구문 분석하려는 문자열이 비어 있는지 또는 늘 비어 있지 않은지 확인하십시오. 비어 있지 않으면 해당 문자열을 구문 분석할 수 있습니다.

let ParsedString;

if(yourString != null){
   ParsedString = JSON.parse(yourString);
}

내 경우 XHR Response가 돌아오기 전에 AJAX 변수에서 JSON.parse()를 호출하려고 했습니다.EG:

var response = $.get(URL that returns a valid JSON string);
var data = JSON.parse(response.responseText);

$.get에 대한 jQuery 사이트의 예시로 대체했습니다.

<script type="text/javascript"> 
    var jqxhr = $.get( "https://jira.atlassian.com/rest/api/2/project", function() {
          alert( "success" );
        })
          .done(function() {
//insert code to assign the projects from Jira to a div.
                jqxhr = jqxhr.responseJSON;
                console.log(jqxhr);
                var div = document.getElementById("products");
                for (i = 0; i < jqxhr.length; i++) {
                    console.log(jqxhr[i].name);
                    div.innerHTML += "<b>Product: " + jqxhr[i].name + "</b><BR/>Key: " + jqxhr[i].key + "<BR/>";
                }
                console.log(div);
            alert( "second success" );
          })
          .fail(function() {
            alert( "error" );
          })
          .always(function() {
            alert( "finished" );
          });

        // Perform other work here ...

        // Set another completion function for the request above
        jqxhr.always(function() {
          alert( "second finished" );
        });
</script>

코드 어디에서도 오류를 찾을 수 없는 모든 분들을 위해 "로컬 스토리지에서 말하는 대로 정의되지 않았거나 null"이 아닙니다.단순히 코드를 코멘트하고 로컬 스토리지에서 실제로 아이템을 삭제하는 다른 코드를 작성하기만 하면 됩니다.그 후, u는 코멘트를 작성하지 않고 현재 코드를 코멘트 또는 삭제한 후 이전 코드를 리셋할 수 있습니다(만약 u dint delete t...를 다시 작성했다면:).

LocalStorage.setItem('Previous' , "removeprevious");  


LocalStorage.removeItem('Previous');   
 Console.log(LocalStorage.getItem('Previous'));

콘솔에 null이 표시되며, t가 작동하지 않으면 코드를 다시 리셋합니다! 오류가 발생했습니다.

내 영어실력은 미안해!

이 답변은 많은 사람들이 생각할 수 있는 해결책이 될 수 있습니다.이 답변은 파일 업로드 작업 중 이 오류가 발생한 사용자를 위한 것입니다.

토큰 기반 암호화 - 암호 해독에 미들웨어를 사용 중 동일한 오류가 발생했습니다.

루트 파일의 코드는 다음과 같습니다.

  router.route("/uploadVideoMessage")
  .post(
    middleware.checkToken,
    upload.single("video_file"),
    videoMessageController.uploadVideoMessage
  );

업로드하기 전에 미들웨어에 전화를 해서 오류가 발생하였습니다.그래서 이렇게 바꾸니까 잘 되더라고요.

router.route("/uploadVideoMessage")
  .post(
    upload.single("video_file"),
    middleware.checkToken,
    videoMessageController.uploadVideoMessage
  );

이것은 어려운 일이 아니다.이 문제는 제 사이트에서도 발생하고 있습니다.js 파일을 상위 순서로 옮겨야 합니다.JSON 파싱을 사용하고 있는 장소에서는 JS 파일이 로드되지 않기 때문입니다.예#

<script type="text/javaScript">
...........SOME CODE.............
</script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>

로 바꾸다.

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script type="text/javaScript">
...........SOME CODE.............
</script>

서버측의 데이터를 해석해, 클라이언트에 송신해 조작하는 것을 검토해 주세요.

json 문자열과 구문 분석 json에 동일한 변수를 사용했을 때 다음과 같은 오류가 발생했습니다.

var json = '{"1":{"url":"somesite1","poster":"1.png","title":"site title"},"2":{"url":"somesite2","poster":"2.jpg","title":"site 2 title"}}'

function usingjson(){
    var json = JSON.parse(json);
}

기능을 다음과 같이 변경했습니다.

function usingjson(){
    var j = JSON.parse(json);
}

이 에러는 해소되었습니다.

언급URL : https://stackoverflow.com/questions/13022178/uncaught-syntaxerror-unexpected-token-u-json

반응형