jQuery获取后台map.put("userInfo",user)返回的对象属性
时间: 2024-02-11 17:09:43 浏览: 89
假设后台返回的Map对象如下:
```
{
"userInfo": {
"name": "John",
"age": 30,
"city": "New York"
}
}
```
你可以使用jQuery的ajax方法来获取后台返回的Map对象,代码如下:
```
$.ajax({
type: "GET",
url: "your-api-url",
dataType:"json",
success: function(response) {
// 在这里处理后台返回的Map对象
var user = response.userInfo;
console.log(user.name); // 输出 "John"
console.log(user.age); // 输出 30
console.log(user.city); // 输出 "New York"
}
});
```
在success回调函数中,先访问Map对象的"userInfo"属性,然后将它赋值给一个变量user。然后就可以直接访问user对象的属性了。需要注意的是,需要设置dataType为json,这样jQuery才会将返回的数据转换为JSON格式的对象。在上面的例子中,我们使用console.log()方法来输出user对象的属性值。
相关问题
@RequestMapping("/getPage") @ResponseBody public Page<TbServiceAccept> getPage(HttpServletRequest request, HttpServletResponse response, HttpSession session, Model model, Page<TbServiceAccept> page, TbServiceAccept tbServiceAccept) { Map<String, Object> map = new HashMap<String, Object>(); map.put("createtimeGt",tbServiceAccept.getCreatetimeGt()); map.put("createtimeLt",tbServiceAccept.getCreatetimeLt()); map.put("clientphone",tbServiceAccept.getClientphone()); map.put("receiver",tbServiceAccept.getReceiver()); map.put("crmnumber",tbServiceAccept.getCrmnumber()); page= tbServiceAcceptService.findByPage(map, page); for (TbServiceAccept tbServiceAccept1 : page.getItems()) { List<Map<String, Object>> usermap = tbUserInfoService.findCustom("select * from tb_User_Info where (username = #{p[0]} or phone =#{p[0]}) and isDelete = 0", new Object[]{tbServiceAccept1.getId()}); if (!usermap.isEmpty()) { tbServiceAccept1.setJson(new JSONObject().fluentPut("khPhone", usermap.get(0).get("khPhone"))); } } return page;怎么改,不要findCustom改为list并且不用map方法
您可以将`findCustom`方法替换为`list`方法,并且不使用`Map`来存储参数。下面是修改后的代码:
```java
@RequestMapping("/getPage")
@ResponseBody
public Page<TbServiceAccept> getPage(HttpServletRequest request, HttpServletResponse response, HttpSession session, Model model, Page<TbServiceAccept> page, TbServiceAccept tbServiceAccept) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("createtimeGt", tbServiceAccept.getCreatetimeGt());
map.put("createtimeLt", tbServiceAccept.getCreatetimeLt());
map.put("clientphone", tbServiceAccept.getClientphone());
map.put("receiver", tbServiceAccept.getReceiver());
map.put("crmnumber", tbServiceAccept.getCrmnumber());
page = tbServiceAcceptService.findByPage(map, page);
for (TbServiceAccept tbServiceAccept1 : page.getItems()) {
List<TbUserInfo> userInfos = tbUserInfoService.list("select * from tb_User_Info where (username = ? or phone = ?) and isDelete = 0", new Object[]{tbServiceAccept1.getId(), tbServiceAccept1.getId()});
if (!userInfos.isEmpty()) {
TbUserInfo userInfo = userInfos.get(0);
tbServiceAccept1.setJson(new JSONObject().fluentPut("khPhone", userInfo.getKhPhone()));
}
}
return page;
}
```
这里使用`list`方法代替了`findCustom`方法,并直接传入参数数组作为查询条件。同时,使用`TbUserInfo`对象来存储查询结果,无需再使用`Map`。
actions: { // 登录 Login({ commit }, userInfo) { const username = userInfo.username.trim() const password = userInfo.password const code = userInfo.code const uuid = userInfo.uuid return new Promise((resolve, reject) => { login(username, password, code, uuid).then(res => { if (res.code != 1) { reject(res) } const data = res.data console.log('data.apiAuth:',data.apiAuth) setToken(data.apiAuth) setUserID(data.userinfo.user_id) commit('SET_USERID', data.userinfo.user_id) commit('SET_TOKEN', data.apiAuth) resolve() }).catch(error => { console.log(error) reject(error) }) }) }, // 微信登录 wxLogin({ commit }, userInfo) { // const username = userInfo.username.trim() // const password = userInfo.password const code = userInfo.code // const uuid = userInfo.uuid return new Promise((resolve, reject) => { wxLogin(code).then(res => { console.log( 'wxlogin response:', res ) if (res.code != 1) { reject(res) } /* const data = res.data console.log('data.apiAuth:',data.apiAuth) setToken(data.apiAuth) setUserID(data.userinfo.user_id) commit('SET_USERID', data.userinfo.user_id) commit('SET_TOKEN', data.apiAuth)*/ resolve() }).catch(error => { console.log(error) reject(error) }) }) }, 我已经定义好了,但也提示错误
根据你提供的代码,我注意到你在定义了 `Login` 和 `wxLogin` 这两个 actions,并在这两个 actions 中使用了 Promise。同时,在这两个 actions 中,你调用了一些其他的函数(比如 `login` 和 `wxLogin`),并在它们的返回值上使用了 `.then()` 和 `.catch()` 进行链式操作。
根据你提供的错误信息,可能有几个地方需要检查和调试:
1. 确保你的 `login` 和 `wxLogin` 函数能够正常工作,并且它们能够返回一个 Promise 对象。你可以在这两个函数中添加一些日志输出,检查它们是否被正确调用,并且它们是否返回了一个 Promise 对象。
2. 检查你在调用 `resolve()` 和 `reject()` 时是否传递了参数。这些参数会成为在 `.then()` 和 `.catch()` 中接收到的值。确保你传递了正确的值以便进行后续的处理。
3. 确保在 Vuex store 中已经正确定义了 `SET_USERID` 和 `SET_TOKEN` 这两个 mutations。这些 mutations 应该接收 state 和 payload 参数,并在 mutations 中对应的状态进行修改。
4. 请注意,如果你使用了 `commit('SET_USERID', data.userinfo.user_id)` 和 `commit('SET_TOKEN', data.apiAuth)`,确保在 Vuex store 文件中导入了 `import { commit } from 'vuex'`。
通过仔细检查以上几个方面,你应该能够找到问题所在并解决错误提示。如果问题仍然存在,可以提供更详细的错误信息,以便我能够更好地帮助你解决问题。
阅读全文