[javascript] jquery json을 문자열로?

json 문자열에서 $ .parseJSON을 사용하는 대신 객체를 가져 와서 json을 나타내는 문자열로 변수에 저장해야합니다.

(내가 다루고있는 라이브러리는 형식이 잘못된 json 유형을 예상하므로 제대로 작동하려면이를 처리해야합니다.)

이를 수행하는 가장 좋은 방법은 무엇입니까?



답변

편집 : 아래 코드를 구현하는 대신 Douglas Crockford의 json2.js 라이브러리를 사용해야합니다. 몇 가지 추가 기능과 더 나은 / 이전 브라우저 지원을 제공합니다.

https://github.com/douglascrockford/JSON-js 에서 json2.js 파일을 가져옵니다.


// implement JSON.stringify serialization
JSON.stringify = JSON.stringify || function (obj) {
    var t = typeof (obj);
    if (t != "object" || obj === null) {
        // simple data type
        if (t == "string") obj = '"'+obj+'"';
        return String(obj);
    }
    else {
        // recurse array or object
        var n, v, json = [], arr = (obj && obj.constructor == Array);
        for (n in obj) {
            v = obj[n]; t = typeof(v);
            if (t == "string") v = '"'+v+'"';
            else if (t == "object" && v !== null) v = JSON.stringify(v);
            json.push((arr ? "" : '"' + n + '":') + String(v));
        }
        return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
    }
};

var tmp = {one: 1, two: "2"};
JSON.stringify(tmp); // '{"one":1,"two":"2"}'

코드 출처 : http://www.sitepoint.com/blogs/2009/08/19/javascript-json-serialization/


답변

나는 사용한다

$.param(jsonObj)

나에게 문자열을 가져다줍니다.


답변

요즘 대부분의 브라우저 JSON에는 parsestringify메서드 를 포함 하는 네이티브 개체가 있습니다. 그래서 JSON.stringify({})당신이 얻는 지 시도 하고보십시오 "{}". 매개 변수를 전달하여 키를 필터링하거나 예쁜 인쇄를 수행 할 수도 있습니다. 예를 들어 JSON.stringify({a:1,b:2}, null, 2)각 키 앞에 개행 문자와 2 개의 공백을 넣습니다.

JSON.stringify({a:1,b:2}, null, 2)

준다

"{\n  \"a\": 1,\n  \"b\": 2\n}"

다음과 같이 인쇄되는

{
  "a": 1,
  "b": 2
}

질문의 일부를 엉망으로 만들려면 두 번째 매개 변수를 사용하십시오. 에서 http://www.javascriptkit.com/jsref/json.shtml :

replacer 매개 변수는 함수 또는 문자열 / 숫자의 배열 일 수 있습니다. JSON 개체 내의 각 멤버를 단계별로 진행하여 각 멤버를 변경해야하는 값을 결정할 수 있습니다. 함수로 다음을 반환 할 수 있습니다.

  • 속성의 원래 값을 반환 된 값으로 대체하는 숫자, 문자열 또는 부울입니다.
  • 직렬화 된 다음 반환되는 객체입니다. 개체 메서드 또는 함수는 허용되지 않으며 대신 제거됩니다.
  • Null : 속성이 제거됩니다.

배열로서 내부에 정의 된 값은 JSON 개체로 변환 될 때 유지되어야하는 JSON 개체 내부의 속성 이름에 해당합니다.


답변

내가 찾은 가장 좋은 방법은 jQuery JSON 을 사용하는 것입니다.


답변

JSON을 객체로 구문 분석 한 다음 ajavscript 객체에서 잘못된 JSON을 생성 할 수 있습니다. 이것은 성능면에서 최선이 아닐 수도 있습니다.

그렇지 않으면 문자열을 아주 조금만 변경해야하는 경우 문자열로 취급하고 표준 자바 스크립트를 사용하여 변경하면됩니다.


답변