0
我有這個Web服務獲取城市的所有名稱並返回json格式的字符串。爲什麼此代碼給我一個例外無效的字符
public String getDataForTowns() throws ClassNotFoundException
{
String strXml = "";
Class.forName("org.postgresql.Driver");
try
{
conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/plovdivbizloca", "postgres", "tan");
}
catch (SQLException ex) {
ex.printStackTrace();
}
Statement mystmt = null;
String selectQuery = "select * from municipality_id";
try {
mystmt = conn.createStatement();
ResultSet mysr = mystmt.executeQuery(selectQuery);
ResultSetMetaData rsmd = mysr.getMetaData();
int colCount = rsmd.getColumnCount();
int numberrow = 0;
strXml += "{\"rows\": [";
while (mysr.next())
{
String townname = mysr.getString(2);
String townid=mysr.getString(1);
strXml += "{\"town\":\"" + townname
+ "\", \"id\":" + townid + "},";
//strXml += ",";
}
strXml += "]}";
}
catch (Exception ex)
{
}
return strXml;
}
並且在客戶端我有這個函數,並且在alert語句中它給了我例外「無效字符」。
function loadTownSelect()
{
select = document.getElementById('sphSel');
createXMLHttpRequest();
var txtDrop = new Array();
var idDrop= new Array();
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
alert(xmlhttp.responseText);
var xmlObj = xmlhttp.responseXML;
var textXML = xmlObj.documentElement.firstChild.firstChild.nodeValue;
alert(textXML);
var nwresp = JSON.parse(textXML);
alert (nwresp.rows[2].town);
}
}
var url = "http://localhost:9091/localbusscat/services/localbusscat/getDataForTowns";
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
沒有告訴你無效字符是什麼,什麼行它位於這個額外逗號導致一個錯誤? – hohner 2013-02-23 15:13:20
無效的字符很可能來自'JSON.parse(textXML);',看起來您可能以'},]'結尾您的JSON字符串,即逗號左邊 – 2013-02-23 15:13:56
您正在使用名爲'strXml的變量'建立一個JSON格式的字符串? – 2013-02-23 15:14:30