だれかのすなば

ひよっこエンジニアがつらつらと書き綴るブログです。記事の内容に責任は負えませんのでご容赦ください。

jQueryからDjangoに連想配列を渡したい

そういうことってありますよね。 でも、どうやらJSの連想配列オブジェクトをそのままPOSTすることはできないみたいです。

hoge = {}
hoge['fuga'] = 1;
hoge['fugo'] = 2;

$.ajax({
  type: "POST",
  url: "/test/",
  dataType: 'json',
  data: {
    "hoge": hoge,
  },
  success: function(data){
  以下略

一旦JSON文字列に変換してからjson.loadsを噛ませることでとりあえずうまくいった。

js

hoge = {}
hoge['fuga'] = 1;
hoge['fugo'] = 2;

$.ajax({
  type: "POST",
  url: "/test/",
  dataType: 'json',
  data: {
    "hoge": JSON.stringify(hoge),
  },
  success: function(data){
  以下略

django

hoge = json.loads(hoge)