当前位置: 首页 > 知识库问答 >
问题:

在Springboot中的JSON中未解析/反序列化某些字段

许博达
2023-03-14

我正在使用下面的JSON由我的springboot代码解析:

{
    "id" :123, 
    "Subject" : "English",
    "name": {
    "Firstname": "Hemant",
    "Middlename": "kumar", 
    "Lastname": "Mamod"
    }
}

但在对其进行解析/反序列化时,我在Student的对象中得到了以下信息:

RESTController:

    package com.example.demo;
    import java.util.*;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.http.MediaType;
    import org.springframework.web.bind.annotation.*;


    @SpringBootApplication
    @RestController
    public class Demo1Application {


    @Autowired
    Student student;
    List<Student> students = new ArrayList<>();


    @RequestMapping(value="/saveStudent", method=RequestMethod.POST,consumes=MediaType.APPLICATION_JSON_VALUE)
    public String savestudent (@RequestBody Student s1) {

        System.out.println(s1);
        return "success";
    }   


    public static void main(String[] args) {
        SpringApplication.run(Demo1Application.class, args);
        System.out.println("Hello");
    }
    }

学生豆类:

package com.example.demo;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

@Component
public class Student {
    int id;
    String Subject;

    @Autowired
    @Qualifier("name")
    Name name;


    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getSubjects() {
        return Subject;
    }
    public void setSubject(String subject) {
        Subject = subject;
    }

    public void setName(Name name) {
        this.name = name;  
    }
    public Name getName() {  
        return name  ;
    }
@Override
public String toString() {
    return "Student [id=" + id + ", Subject=" + Subject + ", name=" + name + "]";
    }
}

命名Bean类:

package com.example.demo;

import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

@Component
@Qualifier("name")
public class Name {
    private String Firstname;
    private String Middlename;
    private String Lastname;

    public Name() {
        System.out.println("Name Object created");
    }

    public String getFirstname() {
        return Firstname;
    }
    public void setFirstname(String firstname) {
        Firstname = firstname;
    }
    public String getMiddlename() {
        return Middlename;
    }
    public void setMiddlename(String middlename) {
        Middlename = middlename;
    }
    public String getLastname() {
        return Lastname;
    }
    public void setLastname(String lastname) {
        Lastname = lastname;
    }

    public Name setfullname(String Fname, String Mname, String Lname) {
        Firstname = Fname;
        Middlename = Mname;
        Lastname = Lname;
        return this;
    }

    @Override
    public String toString() {
        return "Name [Firstname=" + Firstname + ", Middlename=" + Middlename + ", Lastname=" + Lastname + "]";
    }

}

共有1个答案

孙绍辉
2023-03-14

重新格式化JSON输入,使其具有骆驼大小写键:

{
    "id" :123, 
    "subject" : "English",
    "name": {
    "firstname": "Hemant",
    "middlename": "kumar", 
    "lastname": "Mamod"
    }
}
 类似资料:
  • 问题内容: 有没有一种使用Jackson JSON Processor进行自定义字段级序列化的方法?例如,我想上课 序列化为以下JSON: 请注意,age = 25被编码为 数字, 而favoriteNumber = 123被编码为 string 。开箱即用的杰克逊将集结到一个号码。在这种情况下,我希望将favoriteNumber编码为字符串。 问题答案: 您可以实现自定义序列化器,如下所示:

  • 问题内容: 既然没有,可以使用什么本机实现来处理呢? 我注意到了,并且可以使用此格式将数据格式化为JSON,但是如何反序列化? 或者,也许我缺少某些依赖项? 问题答案: 您可以使用,它的依赖项是的依赖项。因此,您无需在project.json中添加依赖项。 请注意,使用WebAPI控制器,您无需处理JSON。 更新ASP.Net Core 3.0 Json.NET已从ASP.NET Core 3.

  • 问题内容: 基本上,我试图使用4chan JSON API从4chan线程解析注释。https://github.com/4chan/4chan- API 基本上,有一个富文本框称为input,另一个称为post_text_box。我正在尝试做的是使它从输入文本框中输入的4chan线程中获取JSON,并从该JSON中提取注释并显示在输出文本框中。 但是,每当我尝试单击“执行”按钮时,都不会发生任何

  • 问题内容: 我有一个包含以下对象数组的Josn文件: 我必须根据开始时间和计算机名称进行排序,并仅向用户显示这两件事。如果两个或多个任务的开始时间相同,则应根据计算机名称对这些任务的结果进行排序。我试图将解析后得到的JsonArray转换为List,然后使用自定义collections.sort。我朝着正确的方向前进吗?在启动时间相同的情况下,如何修改Collections.sort中的比较器以根

  • 问题内容: 场景: 考虑以下是JSON: 如果注意到的话,数据的结构方式是没有硬编码键提及/ 它基本上只是值。 问题: 我无法解析任何动态的JSON。 问题: 有人能找到这种JSON解析的解决方案吗?我尝试了go-simplejson,gabs和default 但没有运气。 注意: 上面的JSON仅用于示例。而且有许多应用程序正在使用当前的API,因此我不想更改数据的结构。我的意思是我不能更改为以

  • 场景: 考虑以下是JSON: 如果您注意到,数据的结构是这样的,即没有硬编码键提到/基本上只是值。 问题:我无法解析任何动态 JSON。 问题:有人能找到这种JSON解析的解决方案吗?我试着简单点 注意:以上JSON只是示例。有很多应用程序正在使用当前的API,所以我不想改变数据的结构。我的意思是我不能换成如下的东西: 然后我可以定义< code>struct