【问题标题】:Is there any way to convert JSON String to query String in android?有没有办法将JSON字符串转换为android中的查询字符串?
【发布时间】:2015-06-22 13:19:13
【问题描述】:

我被困在将 Json 字符串转换为查询字符串。

实际上,我想创建查询字符串,并从该查询字符串生成一个 SHA 哈希并将其设置在标头中以发送到服务器。

请帮忙!

【问题讨论】:

  • “查询字符串”是什么意思?像“SELECT * FROM ... WHERE ...”之类的东西?
  • JSON = { one: 'first', two: 'second' } Query String = ?one=first&two=second QueryString 是我们传入的 URL 之类的。 www.example.com?param1=1&param2=2

标签: android json query-string


【解决方案1】:

您的 JSON 字符串当前是否存储在 JSONObject 中?如果没有,这将是最好的起点。像这样的:

JSONObject json = new JSONObject(returnedString);
String firstValue= json.get(firstKey);
String secondValue = json.get(secondKey);

//然后使用获得的值构造你的查询字符串

编辑

下面建议的通用方法...

类似这样的:

public String getQueryString(String unparsedString){
    StringBuilder sb = new StringBuilder();
    JSONObject json = new JSONObject(unparsedString);
    Iterator<String> keys = json.keys();
    sb.append("?"); //start of query args
    while (keys.hasNext()) {
        String key = keys.next();
        sb.append(key);
        sb.append("=");
        sb.append(json.get(key);
        sb.append("&"); //To allow for another argument.

    }

    return sb.toString();

如果您对 Android 中的 JSONObject 解析有更多疑问,these docs 非常有帮助

【讨论】:

  • 谢谢,但我需要通用类来进行各种解析。这样,我必须解析 JSON 的每一个键。我需要将其转换为具有预定义规则的查询字符串,因此我不想一一解析。
  • 您始终可以为此解析创建一个方法,并将查询字符串所需的值的键作为方法参数传递,这样会更通用
【解决方案2】:

在安卓上:

Uri uri=Uri.parse(url_string);
uri.getQueryParameter("para1");

在 Android 上,Apache 库提供查询解析器:

http://developer.android.com/reference/org/apache/http/client/utils/URLEncodedUtils.htmlhttp://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/client/utils/URLEncodedUtils.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多