1

これは私のJavaScriptコードです:

// action when item file is clicked
$("li span.file").click(function(){

    // get the ID
    console.log($(this).attr('id'));

    $.getJSON('BomItemToJSON', function(data) {
        $.each(data, function(i, item) {
            var id = item.id;
            var description = item.description;

            formObject = document.forms['itemForm'];
            formObject.elements['itemId'].value = id;
            formObject.elements['itemDescription'].value = description;
        });
    });

});

これは私のサーブレットの一部です:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        utx.begin();

        BomHandling bh = new BomHandling(em, utx);

        BomItem item = bh.getBomItem(63788);
        Gson gson = new Gson();
        String json = gson.toJson(item);

        System.out.println("Json: " + json);

        response.setContentType("application/json");
        response.setCharacterEncoding("UTF-8");
        response.getWriter().write(json);
        utx.commit();
    }

それは戻ります:

Json: {"itemId":63788,"modules":[],"deprecated":false,"partNumber":"SG-XPCIE8SAS-E-Z","description":"4 GB Memory Expansion (2 x 2GB) low-profile FBDIMMs, Gen 2, 1.8 V, for Sun SPARC Enterprise, RoHS 6. (For Factory Integration Only)","quantity":0,"unitPriceDollar":"$350.00","discount":"10%","totalDollar":"$0.00","itemClass":"Server","itemType":"HW","vendor":"Sun"}

コンソールログから、このサーブレットが呼び出されていることがわかります。

[09:22:11.633] GET http://localhost:8084/xxx/BomItemToJSON [HTTP/1.1 200 OK 80ms]

これは私のフォームです:

<div id="itemdetail">
    <form name="itemForm">
        ID: <input type="text" name="itemId" value="" size="100"></input>
        Description: <input type="text" name="itemDescription" value="" size="100"></input>
    </form>
</div>

itemIdと説明をJSONオブジェクトからフォームに挿入するにはどうすればよいですか?現在、それは常に「未定義」です。

4

2 に答える 2

4

それぞれは必要ありません。JSONは単一のオブジェクトであり、配列ではありません。

あなたのコードは私が思うにこのようになるはずです:

// action when item file is clicked
$("li span.file").click(function(){

    // get the ID
    console.log($(this).attr('id'));

    $.getJSON('BomItemToJSON', function(data) {
        alert('entered getJSON()');
        var id = data.itemId;
        var description = data.description;

        alert('description: ' + description);

        formObject = document.forms['itemForm'];
        formObject.elements['itemId'].value = id;
        formObject.elements['itemDescription'].value = description;

        alert('done with javascript');
    });

});
于 2012-04-18T07:31:42.443 に答える
1

JSONオブジェクトは角かっこで囲む必要があります。jsonLint{ Json: { ... } }を使用 してjsonを検証しようとすると、エラーに気付く可能性があります。

于 2012-04-18T07:31:49.993 に答える