ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JSON.stringify
    codeStates front-end/node(server) 2023. 2. 14. 16:18
    ๋ฐ˜์‘ํ˜•

     

     

    ๐Ÿ“Œ JSON.stringify

     

     

    ๐Ÿ“JSON์˜ ํƒ„์ƒ ๋ฐฐ๊ฒฝ

     

    "JavaScript Object Notation"

    ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๊ฐ์ฒด ํ˜•ํƒœ์˜ ํฌ๋งท

     

     

    ์ „์†ก ๊ฐ€๋Šฅํ•œ ์กฐ๊ฑด

     

    • ์ˆ˜์‹ ์ž(reciever)์™€ ๋ฐœ์‹ ์ž(sender)๊ฐ€ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•œ๋‹ค.
    • ๋˜๋Š”, ๋ฌธ์ž์—ด์ฒ˜๋Ÿผ ๋ฒ”์šฉ์ ์œผ๋กœ ์ฝ์„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค(String -> ํฐ๋”ฐ์˜ดํ‘œ).
    const message = {
      sender: "๊น€์ฝ”๋”ฉ",
      receiver: "๋ฐ•ํ•ด์ปค",
      message: "ํ•ด์ปค์•ผ ์˜ค๋Š˜ ์ €๋… ๊ฐ™์ด ๋จน์„๋ž˜?",
      createdAt: "2021-01-12 10:10:10"
    }

     

     

    โ—๏ธโ—๏ธ ๊ฐ์ฒด๋Š” ํƒ€์ž… ๋ณ€ํ™˜์„ ์ด์šฉํ•ด String์œผ๋กœ ๋ณ€ํ™˜ํ•  ๊ฒฝ์šฐ ๊ฐ์ฒด ๋‚ด์šฉ ํฌํ•จ X  

    JS์—์„œ ๊ฐ์ฒด๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”์„œ๋“œ(message.toString())๋‚˜ ํ˜•๋ณ€ํ™˜(String(message))์„ ์‹œ๋„ํ•˜๋ฉด

     [object Object] ๋ผ๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํ„ด

     

    ๐Ÿ’ก ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด JSON์˜ ํ˜• ๋ณ€ํ™˜, ๊ฐ์ฒด์˜ ํ˜• ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‚˜์˜ด

     

    • JSON.stringify : ๊ฐ์ฒด๋ฅผ JSON์œผ๋กœ ๋ณ€ํ™˜
    • JSON.parse : JSON์„ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜

     

    // ์ด ๊ณผ์ •์„ ์ง๋ ฌํ™”๋ผ๊ณ  ํ•œ๋‹ค
    
    let transferableMessage = JSON.stringify(message)// ํ˜• ๋ณ€ํ™˜ ํ• ๊ฒŒ
    
    console.log(transferableMessage) 
    // `{"sender":"๊น€์ฝ”๋”ฉ","receiver":"๋ฐ•ํ•ด์ปค","message":"ํ•ด์ปค์•ผ ์˜ค๋Š˜ ์ €๋… ๊ฐ™์ด ๋จน์„๋ž˜?","createdAt":"2021-01-12 10:10:10"}`
    
    console.log(typeof(transferableMessage))
    // `string`

     

     

     

    ์—ฌ๊ธฐ์„œ ๋ณ€ํ™˜๋œ ๊ฐ์ฒด์˜ ํƒ€์ž…์€? "๋ฌธ์ž์—ด"

     

     

    ๐Ÿ‘‰๐Ÿผ  ๊ทธ๋ ‡๋‹ค๋ฉด ์ˆ˜์‹ ์ž๋Š” ์ด ๋ฌธ์ž์—ด ๋ฉ”์‹œ์ง€๋ฅผ ๋‹ค์‹œ ๊ฐ์ฒด์˜ ํ˜•ํƒœ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„๊นŒ? JSON.parse

     

     

    // ์ด ๊ณผ์ •์„ ์—ญ์ง๋ ฌํ™”
    
    let packet = `{"sender":"๊น€์ฝ”๋”ฉ","receiver":"๋ฐ•ํ•ด์ปค","message":"ํ•ด์ปค์•ผ ์˜ค๋Š˜ ์ €๋… ๊ฐ™์ด ๋จน์„๋ž˜?","createdAt":"2021-01-12 10:10:10"}`
    let obj = JSON.parse(packet)
    
    console.log(obj)
    /*
     * {
     * sender: "๊น€์ฝ”๋”ฉ",
     * receiver: "๋ฐ•ํ•ด์ปค",
     * message: "ํ•ด์ปค์•ผ ์˜ค๋Š˜ ์ €๋… ๊ฐ™์ด ๋จน์„๋ž˜?",
     * createdAt: "2021-01-12 10:10:10"
     * }
     */
    
     console.log(typeof(obj))
     // `object`

     

     

    ๐Ÿ”— ์ง๋ ฌํ™”์™€ ์—ญ์ง๋ ฌํ™” ๋ชจ์‹๋„

     

     

     

    ๐Ÿ”—JSON์˜ ๊ธฐ๋ณธ ๊ทœ์น™

     

     

     

     

    ๐Ÿ”— JSON ๊ตฌํ˜„

     

    ์ด ํ˜•ํƒœ๊ฐ€ ๊ฐ€๋Šฅํ•ด์งˆ์ˆ˜ ์žˆ๋„๋ก json์„ ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ

     

    // ์—ฌ๋Ÿฌ๋ถ„์ด ๊ตฌํ˜„ํ•œ stringifyJSON์„ ํ…Œ์ŠคํŠธํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    const stringifiableObjects = [
      9,
      null,
      true,
      false,
      "Hello world",
      [],
      [8],
      ["hi"],
      [8, "hi"],
      [1, 0, -1, -0.3, 0.3, 1343.32, 3345, 0.00011999],
      [8, [[], 3, 4]],
      [[[["foo"]]]],
      {},
      { a: "apple" },
      { foo: true, bar: false, baz: null },
      { "boolean, true": true, "boolean, false": false, null: null },
      // basic nesting
      { a: { b: "c" } },
      { a: ["b", "c"] },
      [{ a: "b" }, { c: "d" }],
      { a: [], c: {}, b: true },
    ];

     

    stringifyJSON.js

     

    /**
     * 1. Browser์— ์กด์žฌํ•˜๋Š” JSON.stringfy ํ•จ์ˆ˜๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•ด ๋ด…๋‹ˆ๋‹ค.
     * JSON.stringfy ํ•จ์ˆ˜๋Š” input ๊ฐ’์„ JSON ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
     * ๋‹จ, undefined์™€ function์€ JSON์œผ๋กœ ์ƒ๋žต๋˜๊ฑฐ๋‚˜ null๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.
     *
     * 2. stringfyJSON์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
     * - Boolean์ด input์œผ๋กœ ์ฃผ์–ด์กŒ์„ ๊ฒฝ์šฐ
     * stringifyJSON(true);                // 'true'
     * - String์ด input์œผ๋กœ ์ฃผ์–ด์กŒ์„ ๊ฒฝ์šฐ
     * stringifyJSON('foo');               // '"foo"'
     * - Array๊ฐ€ input์œผ๋กœ ์ฃผ์–ด์กŒ์„ ๊ฒฝ์šฐ
     * stringifyJSON([1, 'false', false]); // '[1,"false",false]'
     * - Object๊ฐ€ input์œผ๋กœ ์ฃผ์–ด์กŒ์„ ๊ฒฝ์šฐ
     * stringifyJSON({ x: 5 });            // '{"x":5}'
     * - undefined, function์ด ์ฃผ์–ด์กŒ์„ ๊ฒฝ์šฐ
     * stringifyJSON(undefined)            // undefined
     * stringifyJSON(function(){})         // undefined
     * stringifyJSON({ x: undefined, y: function(){} })   // '{}'
     *
     * 3. spec/stringifyJSONSpec.js์˜ stringifiableObjects ๋ฐฐ์—ด์„ ์ฐธ๊ณ ํ•ด์„œ ํ…Œ์ŠคํŠธ์—์„œ ์–ด๋–ค input ๊ฐ’๋“ค์ด
     * ์ฃผ์–ด์ง€๊ณ , ์–ด๋–ป๊ฒŒ stringifyํ•ด ์ฃผ์–ด์•ผ ํ• ์ง€ ์ƒ๊ฐํ•ด ๋ณด์„ธ์š”.
     *
     * 4. ๊ทธ๋ƒฅ ํ…Œ์ŠคํŠธ ํ†ต๊ณผ๋ฅผ ํ•˜๊ณ  ์‹ถ์œผ์‹œ๋‹ค๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ˜„ํ•˜๋ฉด ๋  ๊ฑฐ์˜ˆ์š”.
     *  const stringifyJSON = JSON.stringify;
     *
     * ํ•˜์ง€๋งŒ ์ด ๊ณผ์ œ์˜ ๋ชฉ์ ์€ ์žฌ๊ท€๋ฅผ ๊ณต๋ถ€ํ•˜๋Š” ๊ฒƒ์ด๋‹ˆ, ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ตฌํ˜„ํ•ด๋ด์•ผ๊ฒ ์ง€์š”?:
     */
    function stringifyJSON(obj) {
      // your code goes here
      
    };
    
    // ๋‹ค์Œ ์ฝ”๋“œ๋Š” ๊ฒฐ๊ณผ ์ œ์ถœ์„ ์œ„ํ•œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์•„๋„ ์ข‹์Šต๋‹ˆ๋‹ค.
    if (typeof window === "undefined") {
      module.exports = stringifyJSON;
    }

     

     

    ๐Ÿ‘‰๐Ÿผ๐Ÿ‘‰๐Ÿผ๐Ÿ‘‰๐Ÿผ

    ์ด ๊ตฌํ˜„์€ ์‚ฌ์šฉ์ž๊ฐ€ JSONํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ๋•Œ

    ์›ํ•˜๋Š” ํ˜•ํƒœ์— ๋งž๊ฒŒ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ตฌํ˜„ ๊ณผ์ •์ด๋‹ค

    ์ฒ˜์Œ์—๋Š” ๋ฌด์—‡์„ ๊ตฌํ˜„ํ•˜๋ผ๊ณ  ํ•˜๋Š”์ง€ ์ž˜ ์ดํ•ด๊ฐ€ ์•ˆ๊ฐ”๋‹ค,,,

     

     

    ์™œ๋ƒํ•˜๋ฉด ์‚ฌ์‹ค ์ด ์ฝ”๋“œ๋ฉด ๋๋‚œ๋‹ค....!

    const stringifyJSON = JSON.stringify;

     

    ํ•˜์ง€๋งŒ ๊ณต๋ถ€ํ•˜๋Š” ๊ณผ์ •์ด๋‹ˆ ์žฌ๊ท€๋กœ ๋œฏ์–ด๋ณด์ž

     

        1) ๊ฐ์ฒด๋Š” ๋ฌธ์ž์—ด "9"๋กœ ๋ณ€ํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค

     

    // obj๋ผ๋Š” ๊ฐ์ฒด๊ฐ€ ๋”ฐ์˜ดํ‘œ ์•ˆ์— ๋“  string ํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด
    // ์กฐ๊ฑด๋ฌธ์„ ๊ฑธ์–ด typeof ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํƒ€์ž…์„ ๋ณ€๊ฒฝํ•ด์ฃผ๋ฉด ๋œ๋‹ค
    
    if(typeof obj === 'number'){
    return '${obj}'; // string ํ˜•ํƒœ๋ฅผ ํ…œํ”Œ๋ฆฟ๋ฆฌํ„ฐ๋Ÿด์„ ์ด์šฉํ•˜์—ฌ ํ‘œํ˜„, String(obj)๋กœ๋„ ๊ฐ€๋Šฅ
    }


        2) ๊ฐ์ฒด๋Š” ๋ฌธ์ž์—ด "null"๋กœ ๋ณ€ํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค

    // ๊ฐ์ฒด๊ฐ€ null ์ด์—ฌ๋„ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜
    
    if(obj === 'null'){
    return '${obj}'; // string ํ˜•ํƒœ๋ฅผ ํ…œํ”Œ๋ฆฟ๋ฆฌํ„ฐ๋Ÿด์„ ์ด์šฉํ•˜์—ฌ ํ‘œํ˜„, String(obj)๋กœ๋„ ๊ฐ€๋Šฅ
    }

     


        3) ๊ฐ์ฒด๋Š” ๋ฌธ์ž์—ด "true"๋กœ ๋ณ€ํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค

        4) ๊ฐ์ฒด๋Š” ๋ฌธ์ž์—ด "false"๋กœ ๋ณ€ํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค

    // true , false๋„ boolean ๊ฐ’์ด ๋™์ผํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ string ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜ 
    // if๊ฐ€ ์ค‘์ฒฉ๋˜๋‹ˆ ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐ”๊ฟ”์ฃผ์ž
    
    if(typeof obj === 'number' || obj = null || typeof obj === 'boolean'){
    	return '${obj}';
    }


        5) ๊ฐ์ฒด๋Š” ๋ฌธ์ž์—ด ""Hello world""๋กœ ๋ณ€ํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค

    // string ์œผ๋กœ ๋“ค์–ด์˜ค๋ฉด string์œผ๋กœ ๋ฐ˜ํ™˜
    // ๊ทธ๋Ÿฌ๋‚˜ "" "" ํ˜•ํƒœ์ด๊ธฐ์— ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž๋กœ ๊ฐ™์ด ๋ฌถ์–ด ์ค„ ์ˆ˜๋Š” ์—†๋‹ค
    
    if(typeof obj === 'string'){
    	return '"{obj}"'; // ๋”ฐ์˜ดํ‘œ ํ™•์ธ
    }


        6) ๊ฐ์ฒด๋Š” ๋ฌธ์ž์—ด "[]"๋กœ ๋ณ€ํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
        7) ๊ฐ์ฒด๋Š” ๋ฌธ์ž์—ด "[8]"๋กœ ๋ณ€ํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
        8) ๊ฐ์ฒด๋Š” ๋ฌธ์ž์—ด "["hi"]"๋กœ ๋ณ€ํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
        9) ๊ฐ์ฒด๋Š” ๋ฌธ์ž์—ด "[8,"hi"]"๋กœ ๋ณ€ํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
        10) ๊ฐ์ฒด๋Š” ๋ฌธ์ž์—ด "[1,0,-1,-0.3,0.3,1343.32,3345,0.00011999]"๋กœ ๋ณ€ํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
        11) ๊ฐ์ฒด๋Š” ๋ฌธ์ž์—ด "[8,[[],3,4]]"๋กœ ๋ณ€ํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
        12) ๊ฐ์ฒด๋Š” ๋ฌธ์ž์—ด "[[[["foo"]]]]"๋กœ ๋ณ€ํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค

    // []๊ด„ํ˜ธ๋Š” ๋ฐฐ์—ด์„ ๋œปํ•œ๋‹ค
    // ๋ฐฐ์—ด์•ˆ์— ๋ญ๊ฐ€ ๋“ค์–ด์˜ค๋“  ๋ฐฐ์—ด์•ˆ์— ๊ฐ’์„ ๋ฐ›์•„์ฃผ์–ด ์ƒˆ๋กœ์šด ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋œ๋‹ค
    
    if(Array.isArray(obj)){ // ๋“ค์–ด์˜ค๋Š” ๊ฐ’์ด ๋ฐฐ์—ด์ธ์ง€ ์•„๋‹Œ์ง€ ์กฐ๊ฑด๋ฌธ์„ ๊ฑธ์–ด์ฃผ์ž
    	let newArr = [] // ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ์„ ์–ธ
        for(let el of obj){
        	let arrEl = stringifyJSON(el) // ๊ฐ์ฒด -> ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ๋ฉ”์†Œ๋“œ
       	newArr.push(arrEl) // pop๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด ๋งˆ์ง€๋ง‰์˜ ๊ฐ’ ์ถ”๊ฐ€
        }
        return '{${newArr}}' // ํ…œํ”Œ๋ฆฟ๋ฆฌํ„ฐ๋Ÿด์„ ์จ์„œ string ํƒ€์ž…์œผ๋กœ ๋ฐ˜ํ™˜
    }


        13) ๊ฐ์ฒด๋Š” ๋ฌธ์ž์—ด "{}"๋กœ ๋ณ€ํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
        14) ๊ฐ์ฒด๋Š” ๋ฌธ์ž์—ด "{"a":"apple"}"๋กœ ๋ณ€ํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
        15) ๊ฐ์ฒด๋Š” ๋ฌธ์ž์—ด "{"foo":true,"bar":false,"baz":null}"๋กœ ๋ณ€ํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
        16) ๊ฐ์ฒด๋Š” ๋ฌธ์ž์—ด "{"boolean, true":true,"boolean, false":false,"null":null}"๋กœ ๋ณ€ํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
        17) ๊ฐ์ฒด๋Š” ๋ฌธ์ž์—ด "{"a":{"b":"c"}}"๋กœ ๋ณ€ํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
        18) ๊ฐ์ฒด๋Š” ๋ฌธ์ž์—ด "{"a":["b","c"]}"๋กœ ๋ณ€ํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
        19) ๊ฐ์ฒด๋Š” ๋ฌธ์ž์—ด "[{"a":"b"},{"c":"d"}]"๋กœ ๋ณ€ํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
        20) ๊ฐ์ฒด๋Š” ๋ฌธ์ž์—ด "{"a":[],"c":{},"b":true}"๋กœ ๋ณ€ํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
        21) ํ•จ์ˆ˜์™€ undefined๋Š” stringify๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

     

    // {} ๋Š” ๊ฐ์ฒด๋ฅผ ๋œปํ•œ๋‹ค
    // ๋ฐฐ์—ด๊ณผ ๋น„์Šทํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด๋˜์ง€๋งŒ ๊ฐ์ฒด๋Š” ๊ฐ์ฒด ํ˜•ํƒœ๋ฅผ ๋งŒ๋“ค์–ด์ค˜์„œ stringํƒ€์ž…์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์ง€๋ง์ž
    
    if(typeof obj === 'object'){ // ๊ฐ์ฒด์˜ ํ˜•ํƒœ๋Š” object
    	let newobj = ''; // ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์„ ์–ธi
        for(let key in obj){
        	let objKey = StringifyJSON(ley) // ๊ฐ์ฒด์˜ key๋ฅผ stringํƒ€์ž…์œผ๋กœ ๋ฐ˜ํ™˜
            let objVal = stringifyJSON(obj[key]) // key์˜ ๋งž๋Š” value๊ฐ’์„ stringํƒ€์ž…์œผ๋กœ ๋ฐ˜ํ™˜
            // ํ•จ์ˆ˜์™€ undefined๋Š” stringify๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
            if(objKey === undefined || typeof objVal == 'function' || objVal === undefined){
            newObj = ' ' 
            }else{
            	newObj += '${objKey}:${objVal},'// {"a":"b"},{"c":"d"} ์ฝค๋งˆ๋ถ€๋ถ„ ์žŠ์ง€๋ง์ž
            }
        }
        //begin๋ถ€ํ„ฐ end ์ „๊นŒ์ง€์˜ ๋ณต์‚ฌ๋ณธ์„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด
        // ๋งˆ์ง€๋ง‰ ์ฝค๋งˆ๋Š” ์ œ๊ฑฐ ํ›„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด
        return '{${newObj.slice(o,newObj.length-1)}}' 
    }

     

     

    ๐Ÿ‘๐Ÿผ ๐Ÿ‘๐Ÿผ ๐Ÿ‘๐Ÿผ  json์ด ์–ด๋– ํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ฐ˜ํ™˜๋˜๊ณ  ๊ฐ’์„ ๋ฐ›๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ์˜€๋‹ค

    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

Designed by Tistory.