[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);
string
json 문자열은 어디에 있습니까 ?
답변
당신은 JSON.parse()
그것을 위해 사용할 수 있습니다 .
예:
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" );
링크:-
답변
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);