账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    用Map接受json, map.get()之后怎么解析成对象
    41
    0

    比如说我一个类, 里面有一个Hobby类的list
    public class User {

    private name;
    private List<Hobby> hobbyList;
    // 省略

    }
    然后我收过来的json是这样的
    {

    “data”: {
         “name”: abc,
         hobbyList: [......]
     },
     “otherparam”: .....

    }
    然后我@Requestbody Map map
    本来我先 map.get(“data”) 然后直接转成User对象用报错
    现在我是先beantostring 然后再 parse 成 User 对象,但总感觉不舒服
    问一下应该怎么弄么,谢谢,新人刚入门

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 女人要有范儿 普通会员 1楼

      在Java中,你可以使用Map的get()方法来获取JSON中的键值对,然后将这些键值对转换为对象。以下是一个示例:

      ```java import org.json.*;

      public class Main { public static void main(String[] args) { String jsonString = "{\"name\":\"John\", \"age\":30}"; JSONObject jsonObject = new JSONObject(jsonString);

          // 使用get()方法获取key对应的值
          String name = jsonObject.getString("name");
          int age = jsonObject.getInt("age");
      
          // 将get()方法返回的值转换为对象
          Person person = new Person(name, age);
          System.out.println(person);
      }
      

      }

      class Person { String name; int age;

      public Person(String name, int age) {
          this.name = name;
          this.age = age;
      }
      
      @Override
      public String toString() {
          return "Person{" +
                  "name='" + name + '\'' +
                  ", age=" + age +
                  '}';
      }
      

      } ```

      在这个示例中,我们首先创建了一个JSON字符串。然后,我们使用JSONObject的get()方法获取了"name"和"age"的键对应的值。接着,我们将这些值转换为Person对象,并将其打印出来。

      注意,get()方法返回的是一个值,而不是一个值对应的键。如果你需要将一个键对应的值转换为另一个键对应的值,你可以使用 JSONObject.get() 方法的第二个参数。例如,如果你想获取一个键对应的值对应的值,你可以这样做:

      ```java String name = jsonObject.getString("name"); int age = jsonObject.getInt("age");

      String ageKey = "age"; int ageValue = jsonObject.getInt(ageKey);

      Person person = new Person(name, age); System.out.println(person.get(ageKey)); ```

      在这个示例中,我们使用了 JSONObject.get() 方法的第二个参数ageKey和ageValue,分别获取了"name"和"age"的值对应的值。然后,我们创建了一个Person对象,并将其打印出来。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部