开发安卓项目的时候,使用json包中的函数,例如JSONObject jsonObject = JSONObject.fromObject(result),就会报错。debug时显示source not found。logcat中的报错:
json相关的6个jar都已经加入build path。在其它的项目中都是好用的。为什么安卓里不行?本人第一次开发安卓,纯小白,望大神指教,谢谢!贴一下代码:安卓客户端的:
public boolean login(String phoneNumber, String pass) {
String path=ServerConfiguration.basicUrl + "/UserServlet";
//将用户名和密码放入HashMap中
Map<String,String> params=new HashMap<String,String>();
params.put("phoneNumber", phoneNumber);
params.put("passWord", pass);
String result = "";
try {
result = this.sendGETRequest(path,params,"UTF-8");
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
if(result != ""){
JSONArray jsonArray = null;
try{
JSONObject jsonObject = JSONObject.fromObject(result);
jsonObject.toJSONArray(jsonArray);
}catch(Exception e){
e.printStackTrace();
}
System.out.println(result);
List<User> output = null;
output = JSONArray.toList(jsonArray,User.class);
UserData.user = output.get(0);
ServerConfiguration.sessionId = UserData.user.getSessionId();
return true;
}
return false;
}
这个函数在点击登录按钮时被调用。
提交get请求后,可以正确返回json格式的result。
debug到这句话:JSONObject jsonObject = JSONObject.fromObject(result); 的时候报错:
图片说明
对应的服务器端的servlet:
public class UserServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public UserServlet() {
super();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//规定编码
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
String phoneNumber = request.getParameter("phoneNumber");
String passWord = request.getParameter("passWord");
UserService userService = new UserService();
User user = userService.selectUserByPhoneNumber(phoneNumber);
if(user.getPassword().equals(passWord)){
HttpSession session = request.getSession();
user.setSessionId(session.getId());
session.setAttribute("user", user);
SessionData.addSession(session);
JSONArray jsonArray = JSONArray.fromObject(user);
response.getWriter().println(jsonArray.toString());
}
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。