Bibi's DevLog ๐Ÿค“๐ŸŽ

[MyPick31] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ-ํŒŒ์ด์ฌ ajax ๋ฐฐ์—ด ์ „์†ก-JSON.stringify(), json.loads() ๋ณธ๋ฌธ

Projects/(ํŒ€)MyPick31

[MyPick31] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ-ํŒŒ์ด์ฌ ajax ๋ฐฐ์—ด ์ „์†ก-JSON.stringify(), json.loads()

๋น„๋น„ bibi 2020. 11. 7. 15:58

ajax๋กœ ํŒŒ์ด์ฌ ์„œ๋ฒ„์— ๋ฐฐ์—ด ์ „์†กํ•˜๊ธฐ - JSON.stringify(), json.joads()

๋ฒ ์ด์Šค ํ•„ํ„ฐ๋ง ๊ธฐ๋Šฅ์„ ๋งŒ๋“œ๋Š” ์ค‘.
์ฒดํฌ๋œ ๋ฒ ์ด์Šค๋ฅผ ๋ฐฐ์—ด์— ๋„ฃ์–ด ajax๋ฅผ ํ†ตํ•ด ํŒŒ์ด์ฌ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด์•ผ ํ•œ๋‹ค.

stackoverrun.com/ko/q/12236021 ๋ฅผ ๋ณด๊ณ  ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
blog.naver.com/PostView.nhn?blogId=oihijkoh&logNo=220510265057&redirect=Dlog&widgetTypeCall=trueใ…‡
์—์„œ ์ง๋ ฌํ™”, ์—ญ์ง๋ ฌํ™”๋ฅผ ๋ณด๊ณ  ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ‘‰ ๋ฐฐ์—ด์„ ์ „์†กํ•  ๋•Œ๋Š” json๋ฐฉ์‹์œผ๋กœ serialize(์ง๋ ฌํ™”), deserialize(์—ญ์ง๋ ฌํ™”)ํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค.
(์™œ? ๋ฐฐ์—ด๋„ ๊ฐ์ฒด์ด๋ฏ€๋กœ. ๊ฐ์ฒด๋Š” ์ง๋ ฌํ™”ํ•ด์„œ ์ „์†กํ•ด์•ผ ํ•œ๋‹ค)

serialization ์ง๋ ฌํ™”
: ๊ฐ์ฒด๋ฅผ ์‰ฝ๊ฒŒ ์˜ฎ๊ธธ ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •.
์ง๋ ฌํ™”๋œ ๊ฐ์ฒด๋Š” HTTP๋ฅผ ์‚ฌ์šฉํ•ด ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๊ฐ„ ์˜ฎ๊ธธ ์ˆ˜ ์žˆ๋‹ค.
deserialization ์—ญ์ง๋ ฌํ™”
์ง๋ ฌํ™”์™€ ๋ฐ˜๋Œ€๋˜๋Š” ๊ธฐ๋Šฅ. ์ง๋ ฌํ™”๋œ ๊ฐ์ฒด๋ฅผ ์žฌ๊ตฌ์„ฑํ•จ.

 

(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ - ajax)

JSON.stringify() 
: ๊ฐ์ฒด๋ฅผ jsonํ˜•์‹์œผ๋กœ serializeํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ตฌ๋ฌธ.

๋‚˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉํ–ˆ๋‹ค.

// script์˜์—ญ.
var checkedBases = [/*์–ด๋–ค ๋‚ด์šฉ์˜ ๋ฐฐ์—ด*/];

jQuery.ajaxSettings.traditional = true; // ajax๋กœ ๋ฐฐ์—ด ๋ณด๋‚ผ๋•Œ ํ•„์ˆ˜ ๊ตฌ๋ฌธ.
$.ajax({
    type: "POST",
    url: "/checkBase",
    data: {
        sendBases: [JSON.stringify({checkedBases: checkedBases})]
        },
    success: function (response) {
        if (response['result'] == 'success') {
        console.log(response['msg']);
    	}
    }
})

 

 

(ํŒŒ์ด์ฌ)

json.loads()
: serialized ๊ฐ์ฒด๋ฅผ deserialize ํ•˜๋Š” ํŒŒ์ด์ฌ ๊ตฌ๋ฌธ.

๋‚˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉํ–ˆ๋‹ค.

import json

# ...

@app.route('/checkBase', methods=["POST"])
def checkBase() :
    sendBases = request.form["sendBases"]
    print(json.loads(sendBases))

    return (jsonify({'result': 'success', 'msg': "์„œ๋ฒ„์™€ ์—ฐ๊ฒฐ๋˜์—ˆ์Œ-๋ฒ ์ด์Šค"}))

print(json.loads(sendBases))๋กœ ์„œ๋ฒ„์— ์ถœ๋ ฅ๋˜๋Š” ํ˜•ํƒœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

{'checkedBases': ['๋ฐ”๋‹๋ผ', '์ดˆ์ฝœ๋ฆฟ', '๊ณผ์ผ']}

 

 

 


ํŒŒ์ด์ฌ ๋ณต์Šต..

 

๋”•์…”๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ ์ฝ์–ด์˜ฌ ๋•Œ.
pythonstudy.xyz/python/article/205-JSON-%EB%8D%B0%EC%9D%B4%ED%83%80 ๋ฅผ ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
(jsonํ˜•์‹ ์ฝ์–ด์˜ค๋Š” ๋ฐฉ๋ฒ•๋„ ๋‚˜์™€์žˆ์Œ) 

dict = {"name" : "bibi"}
name = dict['name'] 
# ๋ณ€์ˆ˜ name์€ 'bibi' ๊ฐ€ ๋œ๋‹ค.

 

ํŒŒ์ด์ฌ for๋ฌธ ์˜ค๋ฅ˜ 

TypeError: list indices must be integers or slices, not str
-> '๋ฆฌ์ŠคํŠธ์˜ ์ธ๋ฑ์Šค๋Š” ๋ฌธ์ž์—ด์ด ์•„๋‹ˆ๋ผ ์ •์ˆ˜์—ฌ์•ผํ•œ๋‹ค.'

www.codeit.kr/community/threads/7 ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

ํŒŒ์ด์ฌ for๋ฌธ์ด๋ž‘ ๋‹ค๋ฅธ ์–ธ์–ด for๋ฌธ์ด๋ž‘ ๋„ˆ๋ฌด ํ—ท๊ฐˆ๋ฆฐ๋‹คใ… ใ… 

numbers = ['one', 'two', 'three', 'four', 'five']
    
for n in numbers:
    # print(number[n]) ์ด๋ ‡๊ฒŒ ์ถœ๋ ฅํ•˜๋Š” ๊ฒŒ ์•„๋‹Œ
    print(n) #์œผ๋กœ ์ถœ๋ ฅํ•ด์•ผ
    # 'one' 'two' .. ๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.

 


 

ํ˜„์žฌ์ƒํƒœ

- ์ฒดํฌ๋œ base๋“ค์„ ๋ฐฐ์—ด์— ๋‹ด์•„ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๊ธฐ - ๐Ÿ†—
- cbaseArr, cbase1Arr ๋Š” ๋”•์…”๋„ˆ๋ฆฌ ํ˜•ํƒœ๋กœ ๋งŒ๋“ฆ. - ๐Ÿ†—
- cbase2Arr๋Š” ๋งŒ๋“œ๋Š” ์ค‘. 

 

ํ•  ์ผ

- ๋”•์…”๋„ˆ๋ฆฌ๊ฐ€ ์•„๋‹Œ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ cbaseArr, cbase1Arr, cbase2Arr๋ฅผ ๋งŒ๋“ค์–ด์•ผ๊ฒ ๋‹ค.
๊ตณ์ด ํ‚ค:๊ฐ’ ํ˜•ํƒœ๋กœ ๋งŒ๋“ค ํ•„์š”๋„ ์—†๊ณ  ๋ณต์žกํ•˜๊ธฐ๋งŒ ํ•˜๋‹ค.
ํŒŒ์ด์ฌ์ด๋ž‘ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ž‘ ๋ฌธ๋ฒ• ํ—ท๊ฐˆ๋ฆฐ๋‹ค..

hashcode.co.kr/questions/4118/%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%99%80-%EC%82%AC%EC%9A%A9%ED%95%B4%EC%95%BC-%ED%95%A0-%EA%B3%B3

 

() [] {}์˜ ์ฐจ์ด์™€ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๊ณณ

python์„ ์ฒ˜์Œ ๊ณต๋ถ€ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋งŽ์ด ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฒƒ ๊ฐ™์•„, ์—ฌ๊ธฐ์— ์ •๋ฆฌํ•ด๋‘๊ฒ ์Šต๋‹ˆ๋‹ค. ()[]{}๋Š” ํƒ€์ž…๋ณ„๋กœ ์“ฐ์ด๋Š” ์šฉ๋„๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ํƒ€์ž…๋ณ„๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 1. Array array๋Š” []๋ฅผ ์“ฐ๋Š” ๋Œ€ํ‘œ

hashcode.co.kr

wikidocs.net/14๋ฆฌ์ŠคํŠธ ์ž๋ฃŒํ˜• - ์ ํ”„ ํˆฌ ํŒŒ์ด์ฌ

 

์œ„ํ‚ค๋…์Šค

์˜จ๋ผ์ธ ์ฑ…์„ ์ œ์ž‘ ๊ณต์œ ํ•˜๋Š” ํ”Œ๋žซํผ ์„œ๋น„์Šค

wikidocs.net

์œ„ ๋‘ ๋งํฌ๋ฅผ ์ž˜ ์ฝ์–ด๋ณด๋ฉฐ Arr๋“ค์„ ๋‹จ์ˆœํ™”ํ•˜์ž.