Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将嵌套JSON对象转换为数组Spring boot?_Java_Json_Reactjs_Spring Boot_Api - Fatal编程技术网

Java 如何将嵌套JSON对象转换为数组Spring boot?

Java 如何将嵌套JSON对象转换为数组Spring boot?,java,json,reactjs,spring-boot,api,Java,Json,Reactjs,Spring Boot,Api,我目前正在构建一个React/Springboot应用程序,我的目标是从数组中返回单个对象,但对象在React中无效,有人知道如何从JSON数组中的对象中提取数据,或者是否有一种方法可以放在我的控制器中,将数组中的对象格式化为迷你数组 { - drinks: { id: 1, drinkId: null, drinkName: "Bloody Mary", glassType: "Highball"

我目前正在构建一个React/Springboot应用程序,我的目标是从数组中返回单个对象,但对象在React中无效,有人知道如何从JSON数组中的对象中提取数据,或者是否有一种方法可以放在我的控制器中,将数组中的对象格式化为迷你数组

{
  - drinks: {
       id: 1,
       drinkId: null,
       drinkName: "Bloody Mary",
       glassType: "Highball",
       strAlcoholic: "Alcoholic",
       drinkDetails: "A Bloody Mary is a cocktail containing vodka, tomato juice, and other 
       spices and flavorings including Worcestershire sauce, hot sauces, garlic, herbs, 
       horseradish, celery, olives, salt, black pepper, lemon juice, lime juice and celery 
       salt.",
       720x720-primary-28cf1aaa79d0424d951901fcc0a42e91_xmhgw9.jpg"
    }
}
以下是我的控制器,用于处理上述json数据:

 @GetMapping(path = "all/{id}")
    @CrossOrigin
    public @ResponseBody Map<String, Optional<Drink>> getById(@PathVariable Long id){
        Map<String, Optional<Drink>> response = new HashMap<>();
        response.put("drinks", drinkRepository.findById(id));

        return response;
    }
@GetMapping(path=“all/{id}”)
@交叉起源
public@ResponseBody映射getById(@PathVariable Long id){
Map response=newhashmap();
response.put(“饮料”,drinkRepository.findById(id));
返回响应;
}

您可以使用以下代码执行同样的操作,您可以直接返回您的对象,spring会将您的Java对象转换为JSON。默认情况下,Jackson用于将对象解析为JSON。您只需将您的类标记为@RestController并按原样返回对象。有关更多详细信息,请阅读此帖子。此帖子有更多详细信息ils到主题。另外,确保已选择start.Spring.io中的Spring Web依赖项,以便可以使用它获取RestController,否则,请将依赖项添加到pom文件中

代码:

package com.example.demo;
导入org.springframework.web.bind.annotation.GetMapping;
导入org.springframework.web.bind.annotation.RestController;
@RestController
公共类DemoController{
类用户{
字符串名称、年龄、职务;
公共用户(字符串名称、字符串年龄、字符串作业){
this.name=名称;
这个。年龄=年龄;
这个工作=工作;
}
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
公共字符串getAge(){
回归年龄;
}
公共无效设置(字符串期限){
这个。年龄=年龄;
}
公共字符串getJob(){
返回工作;
}
公共无效设置作业(字符串作业){
这个工作=工作;
}
}
@GetMapping(“/hello”)
公共用户问候语(){
返回新用户(“用户”、“18”、“工作者”);
}
}
网页上的输出:

要记住的要点: 在类中使用getter和setter,因为Jackson在内部使用它们来获取对象数据