当只有一个对象时将XML转换为Json数组Java

2024-06-24

我有一个 XML,我需要将其转换为 JSON,当在 XML 中我们有多个元素时,它会创建正确的 jsonArray,但是当单个元素未创建数组时,任何人都可以帮助我如何在单个元素的情况下获取数组

String TEST_XML_STRING = "<Items><Item><Name>Stack</Name><Name>OverFlow</Name></Item></Items>";
JSONObject xmlJSONObj = XML.toJSONObject(TEST_XML_STRING);
// output - {"Items":{"Item":{"Name":["Stack","OverFlow"]}}}

when

String TEST_XML_STRING = "<Items><Item><Name>Stack</Name></Item></Items>";
JSONObject xmlJSONObj = XML.toJSONObject(TEST_XML_STRING);
// output - {"Items":{"Item":{"Name":"Stack"}}}

但应该是{"Items":{"Item":[{"Name":"Stack"}]}}


我迟到了......但是,使用 org.json:

public static void forceToJSONArray(JSONObject xmlJSONObj, String obj) throws org.json.JSONException 
{
    // where "JSONObject xmlJSONObj" is my JSONObject obtained by passing the XML throug the method toJSONObject 
    // and where "String obj" is the name of the JSONObject I want to force to JSONArray
    Object myObj = xmlJSONObj.opt(obj);
    if (myObj == null)
    {
        // if my obj doesn't exist inside my xmlJSONObj i create it empty
        JSONArray jsonArray = new JSONArray();
        xmlJSONObj.put(obj, jsonArray);
    }
    else if ( myObj instanceof JSONObject ) 
    {
        // if exist but is a JSONObject, I force it to JSONArray
        JSONObject myJSONObj = (JSONObject)myObj;
        JSONArray jsonArray = new JSONArray();
        jsonArray.put(myJSONObj);
        xmlJSONObj.put(obj, jsonArray);
     }
     else if ( myObj instanceof String || myObj instanceof Integer ) 
     {
        // if exist but is a primitive entry (like in your case), I force it to a "primitive" JSONArray
        JSONArray jsonArray = new JSONArray();
        jsonArray.put(myObj);
        xmlJSONObj.put(obj, jsonArray);
     }  
}

希望这能有所帮助;)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当只有一个对象时将XML转换为Json数组Java 的相关文章

  • uniVocity 不会将第一列解析为 beans

    我试图在 uniVocity parsers 的帮助下从 GTFS zip 读取 CSV 文件 但遇到了一个我无法解决的问题 由于某种原因 某些 CSV 文件的第一列似乎无法正确解析 例如 在 stops txt 文件中 如下所示 stop
  • 使用 org.eclipse.xsd 和 Maven2 分析 XML 模式

    我正在尝试实现示例代码本文 http help eclipse org help32 index jsp topic org eclipse xsd doc references articles dwtip1 scpw index htm
  • Spring批处理2.2 JavaConfig

    我正在尝试让 Spring Batch 2 2 与 JavaConfig 一起使用 如今他们有一个 EnableBatchProcessing设置很多东西的注释 默认情况下 该注释使用数据源作为其作业数据 但我们不想保存此数据 也不想为其创
  • 在 json 对象中执行 javascript 代码?

    有远吗 所以像这样 key1 val1 key2 val2 some code document getElementById someid innerHTML test 那么 some code 会在没有任何用户干预的情况下执行吗 No
  • 如何在改造中在主体内传递 JSON 数组

    intent sale redirect urls return url http example com your redirect url html cancel url http example com your cancel url
  • Run As JUnit 未出现在 Eclipse 中 - 使用 JUnit4

    我正在尝试为我的 Web 应用程序编写 JUnit4 测试 它们之前一直工作正常 但是 现在当我尝试通过右键单击类文件 gt Run As gt JUnit Test 来运行测试时 我看不到该选项 我认为这可能是因为一位同事意外提交了一些
  • 获取 Spring Boot 中当前活动数据源的引用

    我想通过实现数据库数据初始化DataSourceInitializer 我将这些方法放在我的 Spring Boot 主方法下面 但似乎它根本没有被执行 我尝试故意删除字符只是为了触发一个错误来确认执行 什么也没有发生 Configurat
  • Java SFTP使用JSch上传,但如何覆盖当前文件?

    我正在尝试使用 JSch 通过 SFTP 将两个文件上传到服务器 如果目录为空 则上传文件效果很好 但我想一遍又一遍地上传相同的文件 只需更改内部的 id 但我不知道如何执行此操作 JSch 中有一些名为 OVERWRITE 的静态参数 但
  • Visual Basic 中未知长度的数组

    我有一段用 Visual Basic 编写的代码 Dim n As Double i As Integer n 4 Dim Ramp length 1 To 4 As Double For i 1 To n Ramp length i Ce
  • Java Reflection:为什么这么慢?

    我一直避免使用 Java 反射 因为它速度缓慢 我在当前项目的设计中达到了一个点 能够使用它将使我的代码更具可读性和优雅性 所以我决定尝试一下 我只是对这种差异感到惊讶 我注意到有时运行时间几乎延长了 100 倍 即使在这个简单的例子中 它
  • StringBuilder - 重置或创建新的

    我有一个条件 StringBuilder 不断存储与大型平面文件 数百 MB 中的模式匹配的行 但是 在达到条件后 我将 StringBuilder 变量的内容写入文本文件 现在我想知道是否应该通过重置对象来使用相同的变量 gt strin
  • 如何更新 Websphere 7 以使用 EL2.2?

    这就是我所做的 按照此林肯 巴克斯特的帖子 http ocpsoft com java jsf2 java jsf2 how to add the magic of el el2 to jsf 我下载了 el api 2 2 jar 和 e
  • 如何显示 javadoc 代码块中的泛型?

    我有一个 javadoc 代码块 我想在其中编写一个包含泛型的代码示例 如下所示 public interface SomeInterface
  • 在同步子句中抛出异常的副作用?

    从同步子句中抛出异常是否有任何不清楚的副作用 锁会发生什么情况 private void doSomething throws Exception synchronized lock doSomething 我没有看到任何副作用 The 锁
  • 方法中缺少 return 语句错误

    我正在尝试编写一个返回计算机 MAC 地址字符串的静态方法 该函数本身可以在此处找到 http www mkyong com java how to get mac address in java http www mkyong com j
  • 如何处理JFreeChart中的SpiderWebPlot?

    发现 JFreeChart 我在使用时遇到了问题蜘蛛网情节 http www jfree org jfreechart api javadoc org jfree chart plot SpiderWebPlot html 这就是我今天所拥
  • simplexml,返回具有相同标签的多个项目

    我将以下 XML 文件加载到 php simplexml 中
  • JFrame.repaint() 和 JPanel.repaint() 之间的区别

    谁能解释一下两者之间的区别JPanel repaint 方法和JFrame repaint 方法 我想两者都调用paintComponent JPanel 中的方法 请澄清 谢谢 Calling repaint 在任何组件上都会向重绘管理器
  • 从 google play 中提取统计信息

    我正在建立一些统计数据 并希望获得来自 google play 应用程序商店 的统计数据 最受欢迎 下载量 价格等信息 有谁知道是否有这个 API 或者我必须自己抓取它 有一个名为 android market api 的项目http co
  • Json.net 将数字属性序列化为字符串

    我正在使用 JsonConvert SerializeObject 序列化模型对象 服务器期望所有字段都是字符串 我的模型对象具有数字属性和字符串属性 我无法向模型对象添加属性 有没有办法将所有属性值序列化为字符串 我必须只支持序列化 而不

随机推荐

  • 制作 pacman 时遇到一些问题?

    编辑 完全忘记提及我正在用 Java 编码 我真的很难制作某种检测系统或某种方法来使我的吃豆人精灵 角色在游戏中的棋盘上顺利移动 我没有把黑板做成图像 我首先尝试过颜色检测 效果最好 但一点也不平滑 而且相当不稳定 然后我尝试手动输入不允许
  • 如何始终在 ActionBar 上显示 Android 设置按钮?

    如何始终在 ActionBar 上显示 Android 设置按钮 4 0 即使设备有用于设置的硬件按钮 我也想显示它 因此带有和不带有硬件按钮的设备都是相同的 这就是我要说的 http oi48 tinypic com 2j104l0 jp
  • WPF 位图到图像的转换仅显示黑色图像

    我确实在以 wpf Image 形式显示图像 uEye Cam 时遇到一些问题 显示的 图像全黑 下面是我使用的代码 Get Cam Bitmap Image var cam new uEye Camera cam Init cam Mem
  • Netlify NodeJS 函数始终返回“对预检请求的响应未通过”

    我正在尝试使用创建一个 API 端点Netlify Lambda 函数 该代码在我的本地运行完美 但总是返回Access to XMLHttpRequest at https
  • ViewPager2 具有不同的项目高度和 WRAP_CONTENT

    有一些关于让 ViewPager 处理以扩展为中心的不同高度项目的帖子ViewPager自己修改它的onMeasure支持这一点 然而 鉴于ViewPager2被标记为最终类 扩展它不是我们可以做的事情 有谁知道是否有办法解决这个问题 例如
  • 如何在WCF请求和响应的soap标头中添加MessageID?

    企业移动设备管理协议在HTTP POST 请求中显示以下soap xml 如何将我的 Web 服务定义为要包含的肥皂头Action MessageID ReplyTo 和 To在请求和响应中 我尝试在 MessageCOntract 中定义
  • CSS 边框干扰绝对定位

    编辑 澄清 box sizing border box 似乎不适用 因为我使用的是绝对定位 下面的代码说明了我的问题 我使用绝对定位 因为我发现这对于基于流的布局来说更加棘手 但我愿意接受建议 我想要的是任意元素的边界 without影响节
  • platform.linux_distribution() 已弃用 - 有哪些替代方案?

    从 Python 3 5 开始platform linux distribution https docs python org 3 5 library platform html platform linux distribution已弃
  • 使用tensorflow和keras的不同训练结果

    Intro 我随机创建训练数据X形状为 1000 10 对于标签Y 它总是等于第一个元素X特征 例如 认为x1 0 1 0 2 0 3 0 9 theny 0 1 使用以下代码创建的数据集 from numpy random import
  • 是我的问题还是 Rails 和 Django 在 Windows 上安装困难?

    我尝试让这些框架在 Windows Vista 上运行几天 但没有成功 每次我认为我让它们工作时 我都会遇到一些涉及 PostgreSQL 或 MySQL 设置的随机错误 或者路径被搞砸了 或者一些其他命令行错误 未识别为内部或外部命令 或
  • 在 Java 中将希腊语转换为大写

    我想做的事情相当简单 String example Mary Had A Little Lamb String upper example toUpperCase 在希腊语中 只有大写单词的第一个字母才应包含重音字符 upper conta
  • 为什么 tkinter 输入验证需要调用 register() ?

    def check the input only allows digits only inp A function for validating the input the purpose of this is to let the us
  • 如何将产品添加到现有且已付款的 Woocommerce 订单中?

    我有一个 WooCommerce 网站 我的一位客户在该网站上购买了产品和电缆 该客户购买了一根与其他产品不兼容的电缆 并询问我们是否可以向他运送价格相同的兼容电缆 也许这是一个愚蠢的问题 但我如何编辑已付款的订单 删除不兼容的电缆并添加正
  • 将 NSDate 转换为 NSString

    我如何转换 NSDate to NSString所以只有这一年 yyyy 格式是输出到字符串吗 怎么样 NSDateFormatter formatter NSDateFormatter alloc init formatter setDa
  • 如何在 Swift 中使用 AXObserverAddNotification?

    如何在 Swift 中使用 AXObserverAddNotification 来检测 UI 更改 Obj C 中有一个很好的答案 我的应用程序如何检测另一个应用程序窗口的更改 https stackoverflow com questio
  • 如何使用 Route53 从一个顶级域重定向到另一个顶级域

    如果我的术语在这里不太正确 请道歉 我的域 albunack net 在 Route53 上运行良好 我还在 Route 53 控制下拥有域 albunack com 我希望对 albunack com 的任何请求都重定向到 albunac
  • 引用初始化和直接绑定与间接绑定

    考虑以下情况 struct A operator int int x A 规范说在http eel is c draft dcl init ref 5 http eel is c draft dcl init ref 5关于引用绑定是直接还
  • 版本控制 rpm 规范文件

    我正在配置一台构建机器来为大量非常相似的项目生成 rpm 每个项目的规范文件在名称上以及有时在依赖项和其他属性上都略有不同 每个项目都有自己的 git 存储库 其中包含项目文件 这些规范文件仅存在并且实际上仅对构建系统本身有用 每个项目都可
  • 调试目标调用异常

    我正在使用 Visual Studio 2008 C Express Edition 并且正在尝试调试由于我触发的事件而发生的 TargetInitationException 我的问题并不是专门针对此异常 因此我没有包含有关此异常的任何详
  • 当只有一个对象时将XML转换为Json数组Java

    我有一个 XML 我需要将其转换为 JSON 当在 XML 中我们有多个元素时 它会创建正确的 jsonArray 但是当单个元素未创建数组时 任何人都可以帮助我如何在单个元素的情况下获取数组 String TEST XML STRING