繁体   English   中英

如何从HashMap中的gson获取字符串 <String,Object> 如下所示

[英]How to get string from gson in HashMap<String,Object> which is represented below

无法从json对象获取字符串。 我懂了

Gson gson = new Gson();
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap = (Map<String, Object>)gson.fromJson(result, resultMap.getClass());
if (handler!=null) {
   handler.responseReceived(new HashMap(resultMap),_queryName);
}

在另一个类中,我需要获取JsonObject的Elements

public void responseReceived(HashMap<String, Object> resp, String action) {
    Log.e("!!!", action);
    Log.e("!!!", "--------");
    Log.e("!!!", resp.toString());
    //Json Parsed, need just to get elements of jsonobject
}

现在如何从HashMap<String,Object>分别获取String,元素?

我们可以使用您当前的代码打印这些值。

使用map.keySet()。toString()从地图打印字符串值,或者如果要打印对象,请使用map.values()。toString()

请查看以下示例以了解更多详细信息,

创建一个小对象类Employee

package com.zack.demo;

public class Employee {

    private String name;

    private int age;

    private String gender;


    public Employee(String name, int age, String gender)
    {
        this.name = name;
        this.age = age;
        this.gender = gender;

    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

}

GSONTest类具有不同的输入和输出格式,可以从Map打印值

package com.zack.demo;

import java.util.HashMap;
import java.util.Map;

import com.google.gson.Gson;

public class GsonTest {

    public static void main(String[] args) {

        Gson gson = new Gson();

        Map<String, Object> resultMap = new HashMap<String, Object>();

        Employee o1 = new Employee("Test1", 10, "Male");

        resultMap.put("T1", o1);

        Employee o2 = new Employee("Test2", 20, "Male");

        resultMap.put("T2", o2);

        String result = gson.toJson(resultMap, resultMap.getClass());

        System.out.println(result);

        Map<String, Object> resultOutputMap = new HashMap<String, Object>();

        resultOutputMap = (Map<String, Object>) gson.fromJson(result,
                resultOutputMap.getClass());

        System.out.println("Complete Map: "+ resultOutputMap.toString());

        System.out.println("Values: "+resultOutputMap.values().toString());

        System.out.println("Keys: "+resultOutputMap.keySet().toString());

    }

}

上一类的输出

{"T1":{"name":"Test1","age":10,"gender":"Male"},"T2":{"name":"Test2","age":20,"gender":"Male"}}
Complete Map: {T1={name=Test1, age=10.0, gender=Male}, T2={name=Test2, age=20.0, gender=Male}}
Values: [{name=Test1, age=10.0, gender=Male}, {name=Test2, age=20.0, gender=Male}]
Keys: [T1, T2]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM