Javaweb 省市联动 json数据获取 出现undefined

 public class Province {
        private int ProvinceID;
        private String Name;
        public int getProvinceID() {
            return ProvinceID;
        }
        public void setProvinceID(int provinceID) {
            ProvinceID = provinceID;
        }
        public String getName() {
            return Name;
        }
        public void setName(String name) {
            Name = name;
        }
        public Province() {
            super();
            // TODO Auto-generated constructor stub
        }
        public Province(int provinceID, String name) {
            super();
            this.ProvinceID = provinceID;
            this.Name = name;
        }
 package com.web.servlet;

import java.io.IOException;
import java.sql.SQLException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.web.domain.Province;
import com.web.service.ProvinceService;

import net.sf.json.JSONArray;

/**
 * 省市联动——省
 * Servlet implementation class PrivinceSelectServlet
 */
public class ProvinceSelectServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         //调用service 查询所有省份、
    List<Province> list=null;
    try {
        list = new ProvinceService().findAll( );
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
        //将所有的省份
    response.setContentType("text/html;charset=utf-8");
    if(list!=null&&list.size()>0){
        response.getWriter().print(JSONArray.fromObject(list));

    }

    }


    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

 package com.web.service;

import java.sql.SQLException;
import java.util.List;

import com.web.dao.Provincedao;
import com.web.domain.Province;

public class ProvinceService {

    public List<Province> findAll() throws SQLException {
        // TODO Auto-generated method stub
        return new Provincedao().findAll() ;
    }

}

 package com.web.dao;

import java.sql.SQLException;
import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ColumnListHandler;

import com.web.domain.Province;

import Utils.DatasourceUtils;

public class Provincedao {

    public List<Province> findAll( ) throws SQLException {
        // TODO Auto-generated method stub
    QueryRunner qr = new QueryRunner(DatasourceUtils.getDatasource());
    String sql="select * from province  ";  
    return qr.query(sql, new BeanListHandler< >(Province.class));
    }

}

 <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>省事联动</title>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.11.3.min.js"></script>
<script type="text/javascript">
    $(function  () {
        //页面加载成功,查询所有的省市
        $.get("/Day15/ProvinceSelectServlet",function(obj){
            //alert(obj)
         var $pro=$("#proId");
            $(obj).each(function(){
                $pro.append($("<option value="+this.ProvinceID+"> "+this.Name+"</option>"));
            }); 

        },"json");

    })
</script>
</head>
<body>
    <select id="proId" name="province">
        <option >-省份-</option>
    </select>
    <select id="citId" name="city">
        <option >-城市-</option>
    </select>
</body>
</html>

出现undefined ,往往是传递的json格式数据不对

需要在页面上通过JSON.parse把你后台序列化的值转换一下就可以了

需要在页面上通过JSON.parse把你后台序列化的值转换一下就可以了

页面上obj=eval("("+obj+")")试试

这种在有疑问的地方通过console.log输出下你的变量内容,方便更好的确定问题所在