我觉得(其实我知道!)我在这里做错了什么,我正在尝试将一些值填充到HashMap中,并将每个HashMap添加到列表中,该列表将被添加到JSON对象中:
JSONObject json = new JSONObject();
try
{
Map address;
List addresses = new ArrayList();
int count = 15;
for (int i=0 ; i<count ; i++)
{
address = new HashMap();
address.put("CustomerName" , "Decepticons" + i);
address.put("AccountId" , "1999" + i);
address.put("SiteId" , "1888" + i);
address.put("Number" , "7" + i);
address.put("Building" , "StarScream Skyscraper" + i);
address.put("Street" , "Devestator Avenue" + i);
address.put("City" , "Megatron City" + i);
address.put("ZipCode" , "ZZ00 XX1" + i);
address.put("Country" , "CyberTron" + i);
addresses.add(address);
}
json.put("Addresses", addresses);
}
catch (JSONException jse)
{
}
response.setContentType("application/json");
response.getWriter().write(json.toString());
我的问题是,我知道这个返回的是一个字符串,但是我似乎无法解析它(这就是问题所在)。我的问题是,如何返回实际的JSON编码字符串(甚至我是否应该这样做?)或者对于这种类型的问题,最好的攻击方法是什么。我正在使用以下JavaScript:
function getReadyStateHandler(req)
{
// Return an anonymous function that listens to the
// XMLHttpRequest instance
return function ()
{
// If the request's status is "complete"
if (req.readyState == 4)
{
// Check that a successful server response was received
if (req.status == 200)
{
msgBox("JSON Response recieved...");
populateDatagrid(req.responseText.toJSON());
}
else
{
// An HTTP problem has occurred
alert("HTTP error: " + req.status);
}
}
}
}
请注意,JSON响应可以正常返回,但它是一个字符串。非常感谢您的建议。我也愿意使用Google的Gson,但对此并不了解太多。