gpt4 book ai didi

javascript - 如何将对象的某些部分作为字符串获取

转载 作者:行者123 更新时间:2023-12-03 07:56:57 24 4
gpt4 key购买 nike

我正在尝试根据登录用户名从服务器获取数据。

我成功获得了正确的对象,但我只未能获得其中的某些部分。

getDepartmentByEmp : function (){
var empName = $.trim($(".temp-test").html());
console.log(empName);
$.ajax({
contentType : "application/json",
dataType : 'json',
type : "GET",
url : "<c:url value='/app/general/add/getDepartment/'/>" + empName,
complete : function(data) {
$("#docDepartment").val(data.responseText);
$("#docDepartment").prev().html(data.responseText);
console.log(data.responseText);
console.log(typeof data.responseText);
}
});
},

该 empName 获取我的数据库中每个登录用户的 empNameTrim 值。数据类型为object,responseText为string。

其输出如下所示:

enter image description here

enter image description here

enter image description here

我想让 docDepartment 的值等于部门的值,在本例中为 SM。

提前谢谢您。

编辑:我按照 Loïc Faure-Lacroix 的提示,修改了我的代码,如下所示:

第一

getDepartmentByEmp : function (){
var empName = $.trim($(".temp-test").html());
console.log(empName);
$.ajax({
contentType : "application/json",
dataType : 'json',
type : "GET",
url : "<c:url value='/app/general/add/getDepartment/'/>" + empName,
complete : function(data) {
var doc = JSON.parse(data.responseText);
$("#docDepartment").val(doc.department);
$("#docDepartment").prev().html(doc.department);
console.log(doc.department);
console.log(typeof doc.department);
}
});
},

第二

getDepartmentByEmp : function (){
var empName = $.trim($(".temp-test").html());
console.log(empName);
$.ajax({
contentType : "application/json",
dataType : 'json',
type : "GET",
url : "<c:url value='/app/general/add/getDepartment/'/>" + empName,
complete : function(data) {
$("#docDepartment").val(data.responseJSON.department);
$("#docDepartment").prev().html(data.responseJSON.department);
console.log(data.responseJSON.department);
console.log(typeof data.responseJSON.department);
}
});
},

第三

getDepartmentByEmp : function (){
var empName = $.trim($(".temp-test").html());
console.log(empName);
$.ajax({
contentType : "application/json",
dataType : 'json',
type : "GET",
url : "<c:url value='/app/general/add/getDepartment/'/>" + empName,
})
.done(function (data) {
$("#docDepartment").val(data.department);
$("#docDepartment").prev().html(data.department);
console.log(data.department);
console.log(typeof data.department);
})
},

所有这些都工作正常。选择您喜欢的任何内容。

最佳答案

如果 jQuery 未解析为 JSON,请使用 JSON.parse 在responseText上执行此操作...也就是说,根据文档 here ,如果您转到数据类型部分,您应该阅读以下内容:

If json is specified, the response is parsed using jQuery.parseJSON before being passed, as an object, to the success handler. The parsed JSON object is made available through the responseJSON property of the jqXHR object.

所以你应该使用这个:

$("#docDepartment").val(data.responseJSON.department)

但是为了让你的代码更简洁,最好使用以下形式:

getDepartmentByEmp : function (){
var empName = $.trim($(".temp-test").html());
console.log(empName);
var request = $.ajax({
contentType : "application/json",
dataType : 'json',
type : "GET",
url : "<c:url value='/app/general/add/getDepartment/'/>" + empName,
})
request.done(function (data) {
$("#docDepartment").val(data.department);
$("#docDepartment").prev().html(data);
console.log(data);
console.log(typeof data);
})
request.fail(function () {
...
})
},

主要区别在于应使用最终数据调用 done 回调。而 complete 则使用 jqXHR 对象调用。仅在成功时才会调用它,而即使发生错误也始终会调用 complete

关于javascript - 如何将对象的某些部分作为字符串获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34757733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com