Javascript 객체를 Json 문자열로 인코딩


102

Javascript 객체를 JSON 문자열로 인코딩하고 싶은데 상당한 어려움이 있습니다.

개체는 다음과 같습니다.

new_tweets[k]['tweet_id'] = 98745521;
new_tweets[k]['user_id'] = 54875;       
new_tweets[k]['data']['in_reply_to_screen_name'] = "other_user";
new_tweets[k]['data']['text'] = "tweet text";

이것을 JSON 문자열로 가져와 ajax 요청에 넣고 싶습니다.

{'k':{'tweet_id':98745521,'user_id':54875, 'data':{...}}}

당신은 그림을 얻습니다. 내가 무엇을하든 작동하지 않습니다. json2와 같은 모든 JSON 인코더는

[]

글쎄, 그건 도움이되지 않습니다. 기본적으로 PHP encodejson함수 와 같은 것을 갖고 싶습니다 .


3
실제로 무엇을 시도 했습니까? 시련의 일부 코드 ... 제공하십시오
안드레아스 Niedermair

답변:


163

변수 k가 정의되어 있지 않으면 문제의 원인 일 수 있습니다. 이와 같은 것이 원하는 것을 수행합니다.

var new_tweets = { };

new_tweets.k = { };

new_tweets.k.tweet_id = 98745521;
new_tweets.k.user_id = 54875;

new_tweets.k.data = { };

new_tweets.k.data.in_reply_to_screen_name = 'other_user';
new_tweets.k.data.text = 'tweet text';

// Will create the JSON string you're looking for.
var json = JSON.stringify(new_tweets);

한 번에 모두 수행 할 수도 있습니다.

var new_tweets = {
  k: {
    tweet_id: 98745521,
    user_id: 54875,
    data: {
      in_reply_to_screen_name: 'other_user',
      text: 'tweet_text'
    }
  }
}

3
너는 천재 야. 대단히 감사합니다. k가 정의되었습니다. 문제는 내가 객체 {} 대신 new Array ()를 사용하는 것이 어리 석다는 것입니다.
Lukas Oppermann 2011

완벽하게 작동합니다 ... 테스트를하고 결과가 굉장합니다. 감사. console.info(json); console.log(new_tweets["k"]); console.log(new_tweets["k"]["user_id"]); console.log(new_tweets["k"]["data"]["text"]);
equiman 2013-08-13

CORS 및 Chrome 보안에 대해 읽은 후 이것은 JSON 데이터를 인코딩하는 간단하고 효과적인 방법입니다. 매우 가치있는 +1
ashes999

1
@ TomášZato : 왜 구체적으로 그럴까요? 그것이 당신이 암시하는 것이라면 JSON.stringifyPHP보다 앞서 json_encode있습니다.
Dave Ward

네, 그게 제가 생각했던 것입니다. JSON최근에 알게되었습니다 . 과거에는 evalJSON 응답을 구문 분석했습니다. 평가가 내 코드에서 나올 것이라는 점이 기뻤습니다.
Tomáš Zato-Monica 복원

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.