JSONObject在Android Main方法中无法实例化问题

目录

  • 前言
  • 一、Main(非安卓环境)方法下运行
  • 二、安卓坏境下运行
  • 三、why?


前言

原生的json,即org.json.JSONObject; 在Android Studio中的Main方法里运行报错,但在安卓程序运行过程正常

一、Main(非安卓环境)方法下运行

    static void test() {try {// 创建一个 JSON 对象JSONObject jsonObject = new JSONObject();jsonObject.put("name", "Alice");jsonObject.put("age", 25);// 将 JSON 对象转换为字符串String jsonString = jsonObject.toString();// 解析 JSON 字符串JSONObject parsedObject = new JSONObject(jsonString);String name = parsedObject.optString("name");int age = parsedObject.optInt("age");// 打印解析结果Log.d("JSON", "Name: " + name);Log.d("JSON", "Age: " + age);} catch (JSONException e) {e.printStackTrace();}}public static void main(String[] args) {test();}

在这里插入图片描述


二、安卓坏境下运行

 protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);binding = ActivityMainBinding.inflate(getLayoutInflater());setContentView(binding.getRoot());fManager = getSupportFragmentManager();test();}void test() {try {// 创建一个 JSON 对象JSONObject jsonObject = new JSONObject();jsonObject.put("name", "Alice");jsonObject.put("age", 25);// 将 JSON 对象转换为字符串String jsonString = jsonObject.toString();// 解析 JSON 字符串JSONObject parsedObject = new JSONObject(jsonString);String name = parsedObject.optString("name");int age = parsedObject.optInt("age");// 打印解析结果Log.d("JSON", "Name: " + name);Log.d("JSON", "Age: " + age);} catch (JSONException e) {e.printStackTrace();}}

输出:
在这里插入图片描述

三、why?

其实很简单啊,这是因为 org.json.JSONObject 相关类是 Android SDK 中的一个类,它与普通的 Java 应用程序环境不完全兼容。只能在Android 应用程序中使用 JSONObject,而不是在普通的 Java 应用程序中。

很好,又水了一篇文章…在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/534827.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[译]Python 和 TOML:新最好的朋友 (1) 了解TOM

文章目录 Python 和 TOML:新最好的朋友使用TOML作为配置文件配置和配置文件TOML: Tom’s Obvious Minimal LanguageTOML 模式验证 了解TOML:键值对Strings, Numbers, and BooleansTablesTimes and DatesArrays Python 和 TOML:新最好的朋友 原…

12 list的使用

文档介绍 文档介绍 1.list是可以在常数范围内的任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代 2.list的底层是带头双向链表循环结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和…

【安装jupyter依赖nbconvert后,jupyter还是找不到nbconvert】打开jupyter notebook报错500:Internal Server Error

文章目录 1. 一般是缺少依赖项或配置问题1.1.检查运行环境:1.2. 安装nbconvert。1.3.jupyter --version查看还是没有,卸载重新安装。1.4. 还有安装,继续卸载重新安装1.4.1.如果删除后还是报已经存在,删除对应文件夹 1.5.jupyter -…

【Java - 框架 - Mybatis】(01) 普通Java项目使用Mybatis操作Mysql - 快速上手

普通Java项目使用Mybatis操作Mysql - 快速上手 说明 通过软件"IntelliJ IDEA"创建"Maven"项目完成;通过"Mybatis"框架操纵"MySQL"数据库完成操作; 环境 Java版本"1.8.0_202";Windows …

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的商品识别系统(深度学习+UI界面+训练数据集+Python代码)

摘要:在零售行业的技术进步中,开发商品识别系统扮演着关键角色。本博文详细阐述了如何利用深度学习技术搭建一个高效的商品识别系统,并分享了一套完整的代码实现。系统采用了性能强劲的YOLOv8算法,同时对YOLOv7、YOLOv6、YOLOv5等…

Docker部署系列之Docker Compose安装Redis三主三从集群

在日常开发或者编程当中,经常需要用到redis集群,若是按照传统的方式,一个机器一个机器搭建,难免过于繁琐,故而可以通过dock er-compose编排方式,快速搭建。我在搭建过程当中,将操作记录下来&…

TS271IDT运算放大器芯片中文资料PDF数据手册引脚图图片参数价格功能

产品描述: TS271 是一款低成本、低功耗的单通道运算放大器,设计用于采用单电源或双电源供电。该运算放大器采用意法半导体硅栅CMOS工艺,具有出色的消耗-速度比。该放大器非常适合低功耗应用。 电源可通过引脚 8 和 4 之间连接的电阻器进行外…

如何只用pycharm创建venv虚拟环境

如何只用pycharm创建venv虚拟环境 网上貌似没有好的博客讲解,我之前也一直在这环境搭建上疑惑。不过照着我这博客来,应该没问题了。 前言 如图所示,我新建了一个空白文件夹。 接下来点击终端(AltF12) 如果发现开头…

Java异常分类(二)

RuntimeException 运行时异常: 派生于 RuntimeException 的异常,如被 0 除、数组下标越界、空指针等,其产生比较频繁,处理麻烦,如果显式的声明或捕获将会对程序可读性和运行效率影响很大。因此由系统自动检测并将它们交…

Docker 笔记(四)--网络

这篇笔记写的时间很久,记录了Docker 的网络知识,概念从浅入深,对docker网络有一个大体介绍,对部分细节做了详细解析,但涉及的知识点太多,未能在一篇中全部罗列,后续逐步完善吧。 目录 参考环境网…

算法归纳【数组篇】

目录 二分查找1. 前提条件:2. 二分查找边界 2.移除元素有序数组的平方长度最小的子数组59.螺旋矩阵II54. 螺旋矩阵 二分查找 参考链接 https://programmercarl.com/0704.%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE.html#%E6%80%9D%E8%B7%AF 1. 前提条件: 数…

C#类的应用实例1-石头剪刀布

C#类的应用非常广泛,可以用于各种软件开发项目,包括但不限于以下几个方面: 桌面应用程序开发:C#类可用于开发Windows桌面应用程序,如图形用户界面(GUI)应用程序、数据库应用程序等。通过定义类和…