[javascript] 문자열을 JSON 객체로 변환

JS는 문자열이 JSON이라고 어떻게 생각합니까?

JSON 객체가 전달 된 경우에만 작동하는 기능이 있습니다. JSON과 동일한 형식으로 문자열을 전달하면 작동하지 않습니다. 따라서 해당 함수에 전달 된 문자열이 JSON이라고 생각하도록하고 싶습니다. 문자열은 실제로 JSON 형식입니다.

나는 또한 다음을 시도했다. “handle as”매개 변수를 “JSON”으로하여 Ajax를 통해 문자열을 입력 한 다음 결과를 함수에 전달하면 작동합니다.

그래서 나는 문자열에 문제가 없다고 추론했다. 이 문자열을 JSON으로 어떻게 변환합니까? 아약스 요청을 통해 동일한 문자열을 얻은 다음 함수에 전달하면 작동하지만 직접 전달하면 작동하지 않습니다.

문자열은 다음과 같습니다.

  {
     "data": [
   {
  "id": "id1",
      "fields": [
        {
          "id": "name1",
          "label": "joker",
          "unit": "year"
        },
         {"id": "name2", "label": "Quantity"},
    ],
      "rows": [    data here....

and closing braces..



답변

var obj = JSON.parse(string);

stringjson 문자열은 어디에 있습니까 ?


답변

당신은 JSON.parse()그것을 위해 사용할 수 있습니다 .

MDN에서 문서보기

예:

var myObj = JSON.parse('{"p": 5}');
console.log(myObj);


답변

나는 너와 비슷한 끈으로 같은 문제를 겪었다.

{id:1,field1:"someField"},{id:2,field1:"someOtherField"}

여기서 문제는 문자열의 구조입니다. json 파서는이 경우 2 개의 객체를 만들어야한다는 것을 인식하지 못했습니다. 그래서 내가 한 일은 어리석은 일입니다. 방금 문자열을 재구성 []하고 파서가 인식하는 것을 추가했습니다.

var myString = {id:1,field1:"someField"},{id:2,field1:"someOtherField"}
myString = '[' + myString +']'
var json = $.parseJSON(myString)

도움이 되길 바랍니다.

더 우아한 접근 방식을 가진 사람이 있다면 공유하십시오.


답변

var obj = jQuery.parseJSON('{"name":"John"}');
alert( obj.name === "John" );

링크:-

http://api.jquery.com/jQuery.parseJSON/


답변

Object Mapper를 사용하여 문자열을 HashMap으로 변환하십시오 …

new ObjectMapper().readValue(string, Map.class);

내부적으로 맵은 JSON 객체로 작동합니다


답변

var Data=[{"id": "name2", "label": "Quantity"}]

문자열 변수를 Json 구문 분석에 전달하십시오.

Objdata= Json.parse(Data);


답변

단순히 eval기능을 사용하십시오 .

var myJson = eval(theJsibStr);