lap602651857
lap602651857
采纳率25%
2018-06-22 02:18 阅读 1.4k

Android 数据格式转换成JSON

10

下面是个String字符串 如何转化成JSON格式的

stdClass Object
(
[RequestId] => 46AAE812-C44A-4B28-861F-197A0AA96911
[AssumedRoleUser] => stdClass Object
(
[AssumedRoleId] => 372475079751047267:client_name
[Arn] => acs:ram::1946652184544962:role/aliyunosstokengeneratorrole/client_name
)

    [Credentials] => stdClass Object
        (
            [AccessKeySecret] => GSBQecZ8rVMjJWfxe2uXQUF9c39uqtXUsMdkw2xyGLQC
            [AccessKeyId] => STS.NHtpx47BjeqR7oHJaBQojrnkG
            [Expiration] => 2018-06-22T02:34:20Z
            [SecurityToken] => CAIStgJ1q6Ft5B2yfSjIr4vBO8KA2p1L0rO5NUn5rmEXXeBGnavApTz2IH9OeHZtAe8Xsfk2nGxX7PgdlqJ4T55IQ1Dza8J148yORrVjyc6T1fau5Jko1be2ewHKeQCZsebWZ+LmNpy/Ht6md1HDkAJq3LL+bk/Mdle5MJqP+/kFC9MMRVuAcCZhDtVbLRcYhK18D3bKMuu3ORPHm3fZCFES2jBxkmRi86+ysI3+kRPVlw/90fRH5dazcJGgaM9je9UdKt6+x75xbbGTknwSuRFO86F5rtQdqGuZ4IzHWgkNvknaYrSOyLA1cl8lPJpdMrVfsf3xmcd/vuHujIntw35PR7oKCXiAGdj/kZSZQbv1aYxnKqyIMnDMw82JMYLurwQnbHQUOQVHYdM9LWVqDhghWps/mnhLX4KhGoABBSG+Mx+p1ABIQhfYWQFolusO8cXeu0LEqyytW4UHH/lRmniAjdDY0H4AyzVzboeqK4H9S+93mH0V+Gk34ZpKQPLCB8Dg85u4QzYyFy1jtRlfjVkE20zMHa9vPzGd7tKsNogSHRhF8BqhYq3tGGGFq67FU3w1bDimN1N20sQ26Nk=
        )

)
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

7条回答 默认 最新

  • 已采纳
    bky_lb LuoBinary 2018-06-22 03:52

    思路是先按照“=>”分割为2部分,第一部分去掉中括号作为key,第二项作为暂时的value,然后将value做同样的处理作为真正的value,一直循环就行了。

    点赞 评论 复制链接分享
  • go_home_back go_home_back 2018-06-22 02:27

    字符串的话试试 JSONObject vJSON = new JSONObject(s);

    点赞 评论 复制链接分享
  • u012566514 梦青涯 2018-06-22 02:30

    public class JsonHelper {
    public static Class<?> kindClass;
    /**
    * @Summary 获取一个json对象
    * @param JsonString 一个json格式的字符串

    * @return 正常返回一个json对象 异常返回 null
    */
    public static synchronized JSONObject getJsonObject(String JsonString)
    {
    JSONObject jsonObject = null;
    try {
    JsonString = getJsonStrFromNetData(JsonString);
    JSONArray entries = new JSONArray(JsonString);
    if(entries.length() > 0 )
    {
    jsonObject = entries.getJSONObject(0);
    }
    return jsonObject;
    } catch (JSONException e) {
    e.printStackTrace();
    return null;
    }
    }

    /**
     * @Summary 获取json 对象的数组
     * @param JsonString  json格式的字符串
     * @return  返回Json 对象的数组
     */
    public static  synchronized List<JSONObject> getJsonObjects(String JsonString)
    {
        JsonString = getJsonStrFromNetData(JsonString);
        ArrayList<JSONObject> array = new ArrayList<JSONObject>();
        try {
            JSONArray entries = new JSONArray(JsonString);
            for (int i = 0; i < entries.length(); i++) {
                JSONObject jsObject = entries.getJSONObject(i);
                if(jsObject != null)
                {
                    array.add(jsObject);
                }
            }
    
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return array;
    }
    
    /**
     * @summary 去除非Json的字符串部分
     * @param jsonString 包含Json字符串的数据
     * @return json字符串
     */
    public static  synchronized String getJsonStrFromNetData(String jsonString)
    {  
        int first = jsonString.indexOf("[");
        int last = jsonString.lastIndexOf("]");
        String result = "";
        if (last > first) {
            result = jsonString.substring(first, last + 1);
        } 
        return result;
    }
    
    
    /***
     * @summary 通过json字符串获取 实体对象
     * @param jsonStr Json 字符串
     * @param itemType 实体的类型
     * @return 实体数组
     */
    public static synchronized <T> ArrayList<T> getEntityFromJson(String jsonStr,Class<T> classOfT)
    {
        try {
            jsonStr = getJsonStrFromNetData(jsonStr);
            Gson gson = new Gson();
            Type type = new TypeToken<ArrayList<JsonObject>>() {}.getType();
    
             ArrayList<JsonObject> jsObjs = gson.fromJson(jsonStr, type);
             ArrayList<T> listOfT = new  ArrayList<T>();
             for (JsonObject obj : jsObjs) {
                 listOfT.add(new Gson().fromJson(obj,classOfT));
            }
            return  listOfT;
        } catch (Exception e) {
            return null;
        }
    }
    
    点赞 评论 复制链接分享
  • weixin_38652136 邪恶八进制 2018-06-22 02:45

    如果不是一个 json格式的String那你就只能将他转换为 JSON格式然后再做操做呗,而转换为 JSON格式无非就是 各种 截取+拼接,找规律

    点赞 评论 复制链接分享
  • u012718150 Reveiller 2018-06-22 03:05

    zhem shihsk
    字符串的话试试 JSONObject vJSON = new JSONObject(s);
    如果不是一个 json格式的String那你就只能将他转换为 JSON格式然后再做操做呗,而转换为 JSON格式无非就是 各种 截取+拼接,找规律

    点赞 评论 复制链接分享
  • m0_38012775 m0_38012775 2018-06-22 09:54

    使用JSONArray和JSONObject,试试看。如果数据不是json格式的String类型,强转为String类型在解析

    点赞 评论 复制链接分享
  • weixin_42481582 weixin_42481582 2018-06-22 12:01

    读取文件获得文件中String数据,然后解析

    点赞 评论 复制链接分享

相关推荐