如何在java servlet中使用json数据

时间:2014-08-12 12:10:50

标签: java json servlets knockout.js

我正在使用knockout js并希望将json数据用于我的servlet.i想在我的servlet中使用它,但我无法获取如何获取json数据的键值。我的json数据是

{"data":[{"BranchId":"xzc","Name":"zxc","Description":"zxc","Template":"Template1","MetaKeyword":"zxc","MetaDescription":"zxc","MetaTitle":"zxc","EnableSearch":"No"}]}

我的js代码是

self.SaveBranch = function () {
    $.ajax({
        type: "GET",
        url: '/bin/feed/currency',
        data: "BranchId="+ko.toJSON({ data: self.Branches }),
        contentType: "application/json; charset=utf-8",
        success: function (result) {
        var navTitle = result['Name'];
            alert(navTitle);
        },
        error: function (err) {
        alert(err.status + " - " + err.statusText);
    }
    });
};

在我的servlet中我正在做

String BranchId =(String)request.getParameter("BranchId");
JSONWriter writer = new JSONWriter(response.getWriter());
writer.object();
        writer.key("Name").value(BranchId.name() );
        writer.endObject();

我想在我的servlet中获取BranchID和Name。我怎样才能实现这一目标?

1 个答案:

答案 0 :(得分:0)

您需要解析参数值为JSON。有许多Java库可以这样做(谷歌GSON,杰克逊,org.json,...)。根据选择的lib,您的代码将类似于:

JsObject branchId = Json.parse(request.getParameter("BranchId"));
String name = branchId.get("name");

按照JSON lib提供的类型替换JsObject.parse(...).get(...)相同。