我从服务器获得以下JSON响应:
{
"userId":"123456789",
"displayName":"display name"
}
当我使用NSJSONSerialization.JSONObjectWithData
然后打印结果NSDictionary
时,我在控制台中看到以下内容:
userId = 123456789 displayName ="显示名称"
为什么JSONObjectWithData
会将userId
字段类型从字符串更改为数字?
答案 0 :(得分:1)
它没有。 JSON反序列化尊重数据类型并将维护它。您无法从简单的描述日志中告诉数据类型,您需要实际查询该类。描述日志会引用一些内容,如果它对人类读者更有意义,比如描述中的空格,但在某些情况下也会省略引号。
答案 1 :(得分:1)
没有。
不要从日志表示中推断变量类型,只需测试。用这个来训练游乐场,例如:
<script>
$(function() {
$('a[href*=#]:not([href=#])').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
if (target.length) {
$('html,body').animate({
scrollTop: target.offset().top
}, 1000);
return false;
}
}
});
});
</script>
<script src="js/scroll-startstop.events.jquery.js" type="text/javascript"></script>
<script>
$(function() {
var $elem = $('#content');
$('#nav_up').fadeIn('slow');
$('#nav_down').fadeIn('slow');
$(window).bind('scrollstart', function(){
$('#nav_up,#nav_down').stop().animate({'opacity':'0.2'});
});
$(window).bind('scrollstop', function(){
$('#nav_up,#nav_down').stop().animate({'opacity':'1'});
});
$('#nav_down').click(
function (e) {
$('html, body').animate({scrollTop: $elem.height()}, 800);
}
);
$('#nav_up').click(
function (e) {
$('html, body').animate({scrollTop: '0px'}, 800);
}
);
});
</script>