java - java中打印时 'long'类型的数字改变了它的值

标签 java json parsing long-integer

我解析JSON数据,有book id,这是一个很大的数字:

"Books":[{"ID":88401542,"Title":"Building and Testing with Gradle","SubTitle":"Understanding Next-Generation Builds","Description":"Build and test software written in Java and many other languages with Gradle, the open source project automation tool that's getting a lot of attention. This concise introduction provides numerous code examples to help you explore Gradle, both as a b ..."},{"ID":2676913857...}

long book_id = 0 ;
try {
book_id = jsonBook.getInt(BOOK_ID);
Log.v(LOG_TAG, "book id: " + );

它给我打印了一些愚蠢的负数:

book id: -1814548740

这是什么原因呢?难道是因为我打印的时候没有cast? 我的日志语句应该是:

Log.v("book id: " + new Long (book_id)) ;

Log.v("book id: " + new Long (book_id.toString())) ;

Log.v("book id: " + new String ( new Long(book_id))) ;

最佳答案

由于您的 Book_ID 是 Long,因此您应该使用 getLong 来获取值:

book_id = jsonBook.getLong(BOOK_ID);

关于java - java中打印时 'long'类型的数字改变了它的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29163061/

相关文章:

json - Swift:为什么我的条件绑定(bind)不起作用?

java - 如何在 Postman 中上传文件和 JSON 数据?

c++ - 在 C++ 程序中使用 ANTLR3

java - 从文本中删除文件路径

java - 如何使用 Spring Security SAML 配置远程发现?

java - 我们可以同时运行两个小程序吗

java - 在 Java 中创建对象时从子类属性设置类属性

java - Log4J application.log 文件没有被写入

c# - 将 JSON 反序列化为 C# 对象以在网格中将嵌套数组显示为字符串

python - 将 boolean 公式映射到 Python 集合表达式