3

次のようにリクエストする必要があります。

var url="http://127.0.0.1:8080/simulate/";
    $.ajax({
        url: url,
        type: 'POST',
        data:{  student_num:10,
                company_num:10,
                students:"",
                csrfmiddlewaretoken:'{{csrf_token}}',
                companies:[{weight:10},{weight:11},{weight:9}]
            },
        success: function(data, textStatus, xhr) {
            var text=xhr.responseText
            console.log(text)
        }
    });

しかし、この方法では、request.POSTオブジェクトは をcompaniesネストされた json 配列に編成していません。代わりに、次のように 2D 配列にします。

<QueryDict: {u'student_num': [u'10'], u'students': [u''], u'companies[2][weight]': [u'9'], u'companies[1][weight]': [u'11'], u'company_num': [u'10'], u'companies[0][weight]': [u'10'], u'csrfmiddlewaretoken': [u'RpLfyEnZaU2o4ExxCVSJkTJ2ws6WoPrs']}>

companiesこのように、をオブジェクトのリストに再編成するのは難しいと感じています。他のいくつかの質問を確認しましたが、これを行うべきだと言う人もいます:

companies:"[{weight:10},{weight:11},{weight:9}]"

次にjson.loads、文字列を解析してオブジェクトのリストに戻します。しかし、次のようなコードを使用すると、解析エラーが発生し続けます。

company_array = request.POST['company_array']
company_array = json.loads(company_array)

またはこれ:

company_array = json.load(StringIO(company_array))

では、ネストされた JSON オブジェクトを処理する正しい方法は何でしょうか?

4

3 に答える 3

0

django-SplitJSONWidget-formを見て、そこから決定を下すことができます。

于 2013-06-24T21:29:49.180 に答える