很抱歉,如果我已经解释了这个错误但是我有一个对象是一个数组而且我试图让字段输出但我得到的只是[对象]对象
$.getJSON( "https://service1.homepro.com/smart.asmx/GetFAP_ProfileReviewsJSON?bid=141772&sort=1&page=1", function( data ) {
// console.log(data);
xmlText = data;
var jsonObj = x2js.xml_str2json( xmlText );
// console.log(jsonObj.SMART);
var html = '<div class="review">';
$.each( jsonObj, function( key, answer ) {
// console.log('key', key);
console.log('answer', answer);
html += '<div>' + answer + '</div>';
// html += '<div>' + key + '</div>';
});
$('div').html(html);
});
任何人都可以帮助或告诉我哪里出错了吗?
由于
答案 0 :(得分:2)
在JavaScript中[object object]
是JavaScript object
的默认字符串表示形式,如果它不是null
或undefined
,您可以在JavaScript toString() Reference中看到的是:
每个对象都有一个
toString()
方法,当要将对象表示为文本值或者以预期字符串的方式引用对象时,会自动调用该方法。默认情况下,来自toString()
的每个对象都会继承Object
方法。如果未在自定义对象中覆盖此方法,则toString()
将返回“[object type]
”,其中type是对象类型。以下代码说明了这一点:
var o = new Object();
o.toString(); // returns [object Object]
注意:强> 从JavaScript 1.8.5开始toString()调用null返回[object Null]和undefined返回[object Undefined],如第5节中所定义 ECMAScript版本和随后的勘误表。看到 Using_toString()_ to_detect_object_class。
<强>解决方案:强>
object
,则需要编写自定义内容
通过生成自定义表示来为您完成的功能
您的对象基于其属性。JSON.stringify(answer)
它将返回您的对象
作为一个字符串,但我认为它不会给你你想要的输出
见。答案 1 :(得分:-1)
这是你需要的吗?
$.getJSON( "https://service1.homepro.com/smart.asmx/GetFAP_ProfileReviewsJSON?bid=141772&sort=1&page=1", function( data ) {
var xmlText = data,
x2js = new X2JS(),
jsonObj = x2js.xml_str2json( xmlText ),
html = '<div class="review">';
$.each( jsonObj.SMART.XMLJSON, function( key, answer ) {
html += '<div><strong>' + answer.RefName + '</strong> - ' + answer.Testimonial + '</div>';
});
$('body').html(html);
});
div {
margin: 10px 0;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/x2js/1.2.0/xml2json.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
您必须遍历jsonObj.SMART.XMLJSON
,而不是jsonObj
。