Java解析在http等协议中传输json格式的InputStream流

在协议传输的json格式数据一般都会是用“=”“&”作为分隔:例如:“ type=online&mode=5&plate_num= 京 A12345&plate_color= 蓝 色
&plate_val=true&confidence=25&car_logo= 丰 田 &car_color= 白 色 &vehicle_type= 轿 车”
这里提供了解析的方法:

public static Map<String,String> formData2Dic(String formData ) {
        Map<String,String> result = new HashMap<>();
        if(formData== null || formData.trim().length() == 0) {
            return result;
        }
        final String[] items = formData.split("&");
        Arrays.stream(items).forEach(item ->{
            final String[] keyAndVal = item.split("=");
            if( keyAndVal.length == 2) {
                try{
                    final String key = URLDecoder.decode( keyAndVal[0],"utf8");
                    final String val = URLDecoder.decode( keyAndVal[1],"utf8");
                    result.put(key,val);
                }catch (UnsupportedEncodingException e) {}
            }
        });
        return result;
    }

调用:

               //获得查询字符串(get)
//                String queryString =  exchange.getRequestURI().getQuery();
                //获得表单提交数据(post)
                String postString = IOUtils.toString(httpExchange.getRequestBody(), Charset.forName("UTF-8"));
                Map<String,String> postInfo = formData2Dic(postString);
                for (String key : postInfo.keySet()) {
                    Object value = postInfo.get(key);
                    System.out.println(key + ":" + value);
                }

测试结果:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 解析 XMind 格式文件并将其转换为 JSON 格式需要以下步骤: 1. 使用 Java 代码读取 XMind 格式文件的内容。 2. 将读取的内容解析为树形结构。 3. 遍历树形结构,并将其转换为 JSON 格式。 以下是一个基本的 Java 代码示例,用于解析 XMind 格式文件并将其转换为 JSON 格式。这个示例代码仅仅实现了根节点的解析,你需要根据你的需求扩展它。 ```java import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.util.HashMap; import java.util.Map; import org.xmind.core.Core; import org.xmind.core.IWorkbook; import org.xmind.core.util.FileUtils; import org.xmind.core.util.IProgressReporter; import org.xmind.core.util.ProgressMonitor; import org.xmind.core.util.SafeRunner; import org.xmind.core.util.SizedInputStream; import org.xmind.core.util.XmindUtils; import org.json.JSONObject; public class XMindToJson { public static void main(String[] args) throws Exception { String xmindPath = "path/to/xmind/file.xmind"; String jsonPath = "path/to/json/file.json"; InputStream is = new FileInputStream(new File(xmindPath)); SizedInputStream sis = new SizedInputStream(is); Map<String, String> options = new HashMap<String, String>(); IWorkbook workbook = Core.getWorkbookBuilder().loadFromStream(sis, options, new ProgressMonitor()); JSONObject json = toJSON(workbook); FileUtils.write(new File(jsonPath), json.toString()); } public static JSONObject toJSON(IWorkbook workbook) { JSONObject json = new JSONObject(); json.put("title", workbook.getPrimarySheet().getRootTopic().getTitleText()); return json; } } ``` 这段代码,我们使用 `org.xmind.core` 包的类来读取和解析 XMind 文件。通过使用 `IWorkbook` 接口的方法,我们可以获取到文件的根节点,并将其转换为 JSON 格式。对于这个示例,我们仅仅获取了根节点的标题。 需要注意的是,这段代码并没有考虑兼容旧版 XMind8 文件的问题。如果你需要兼容旧版 XMind8 文件,请使用 `org.xmind.ui.mindmap.MindMapImporter` 类来读取和解析 XMind 文件。这个类会自动根据文件版本来选择合适的解析方式。 ### 回答2: 使用Java代码实现XMind格式文件解析JSON格式需要以下步骤: 1. 解析XMind文件:首先,我们需要读取XMind格式文件的内容。可以使用Java提供的文件读取功能,将XMind文件读取为字节或字符。 2. 解析旧版XMind8文件:XMind8文件采用不同的文件格式,需要单独解析。可以通过检测文件头部,判断文件是XMind格式还是XMind8格式,并进行相应的解析处理。 3. 解析内容:根据XMind格式的规则,解析文件的内容并构建出对应的树状结构。XMind文件根据思维导图的层级结构,包括主题、子主题和附件等。 4. 构建JSON对象:根据解析出的内容,构建对应的JSON对象。可以使用JavaJSON库,如Jackson或Gson库,将解析出的内容转换为JSON格式。 5. 输出JSON数据:将构建好的JSON对象输出为字符串,并保存为JSON格式文件或通过网络传输。 综上所述,以上步骤就是使用Java代码实现XMind格式文件解析JSON格式的大致程。具体实现时可以参考相关的Java文件读取和处理XML的技术文档,以及JSON库的使用方式。 ### 回答3: 要使用Java代码将XMind格式文件解析JSON格式,包括兼容旧版XMind 8文件,可以使用以下步骤: 1. 首先,需要导入相关的Java库,例如JSON库和XMind库。你可以使用Maven或Gradle添加所需的库依赖。 2. 接下来,需要创建一个方法来解析XMind文件。这个方法会接收一个XMind文件路径作为输入,并返回解析后的JSON数据。方法的大致逻辑如下: - 首先,读取XMind文件,并将其加载到一个XMind的对象。可以使用XMind库的相关类和方法来实现这一步骤。 - 接下来,遍历XMind对象的内容,包括主题、子主题和连接线等。使用XMind库的相关类和方法来获取这些内容。 - 在遍历过程,将获取的内容转换为JSON格式的数据。你可以使用JavaJSONObject和JSONArray类来创建和组织JSON数据。 - 最后,将转换后的JSON数据返回。 3. 对于兼容旧版XMind 8文件,可以根据XMind 8文件的结构进行相应的处理。可以使用相同的代码逻辑来解析XMind 8文件,只需根据XMind 8文件的特点进行适当的调整。 注意事项: - 需要了解XMind的文件格式和结构,以便正确解析相应的内容。 - 需要仔细阅读XMind库的文档,了解如何使用库的类和方法来处理XMind文件。 - 需要对JSON格式有一定的了解,以便正确地将内容转换为JSON数据。 这是一个简单的描述,实际实现过程可能会涉及更多细节和代码。你可以参考XMind库的文档和示例代码来更详细地了解如何实现这个功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值