首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中将URL参数转换(解析)为JSON

在Java中将URL参数转换(解析)为JSON
EN

Stack Overflow用户
提问于 2015-04-01 09:37:17
回答 2查看 10K关注 0票数 10

我有REST客户端,提供URL作为参数。但是我的云REST基础设施只接受JSON格式。

有没有办法在Java中将URL参数转换(解析)为JSON格式?

URL参数示例:

代码语言:javascript
复制
data=data10&sensor=sensor10&type=type10

转换为JSON格式,如:

代码语言:javascript
复制
{"data":"data10","sensor":"sensor10","type":"type10"}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-01 18:15:03

解决方案

没有现成的解决方案,因此开发一种方法来解决这个问题是最实际的。

下面是一个参数到JSON的转换方法:

代码语言:javascript
复制
public static String paramJson(String paramIn) {
    paramIn = paramIn.replaceAll("=", "\":\"");
    paramIn = paramIn.replaceAll("&", "\",\"");
    return "{\"" + paramIn + "\"}";
}

结果

方法输入:

代码语言:javascript
复制
data=data10&sensor=sensor10&type=type10

方法返回输出:

代码语言:javascript
复制
{"data":"data10","sensor":"sensor10","type":"type10"}
票数 10
EN

Stack Overflow用户

发布于 2015-04-01 09:55:25

尝试使用URLEncoder/URLDecoder方法encode()和decode()。

下面是一个非常快速的示例:

代码语言:javascript
复制
import java.net.URLDecoder;
import java.net.URLEncoder;

/*... further code ...*/

try { 
    String someJsonString = "{\"num\":2}";
    String encoded = URLEncoder.encode(jsonString, "UTF-8");
    System.out.println(encoded);
    String decoded = URLDecoder.decode(encoded, "UTF-8");
    System.out.println(decoded);
}
catch(UnsupportedEncodingException e){
    e.printStackTrace();
}

下面是一些参考资料:

How to send json data as url...

URLEncoder.encode() deprecated...

Passing complex objects in URL parameters

最后是java文档。

URLDecoder

URLEncoder

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29381446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档