第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Spring boot,如何從json文件中讀取特定對(duì)象,我需要什么注釋?

Spring boot,如何從json文件中讀取特定對(duì)象,我需要什么注釋?

浮云間 2021-12-01 16:58:09
我正在學(xué)習(xí) Spring Boot,我知道如何從資源目錄中讀取 JSON 文件,但我想獲取特定數(shù)據(jù),而不是整個(gè)數(shù)據(jù)。像 localhost:8080/user 返回用戶名。下面是我當(dāng)前的代碼package com.example;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.*;import org.springframework.boot.autoconfigure.*;import org.springframework.core.io.Resource;import org.springframework.web.bind.annotation.*;@RestController@EnableAutoConfigurationpublic class HelloWorld {    @Value("classpath:json/test.json")    private Resource resourceFile;    @RequestMapping("/")    Resource home() {        return resourceFile;    }    public static void main(String[] args) throws Exception {        SpringApplication.run(HelloWorld.class, args);    }}我想讀取 test.json 文件中的特定數(shù)據(jù)。請(qǐng)給我一些建議或步驟。謝謝
查看完整描述

2 回答

?
胡子哥哥

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊

與往常一樣,有幾種可能的方法。


除了手動(dòng)解析和提取方法(如何在 Spring 中加載資源并將其內(nèi)容用作字符串),您還可以嘗試更高級(jí)的方法并使用像 jackson-databind 這樣的庫(kù)(https://github.com/FasterXML /杰克遜數(shù)據(jù)綁定)。


假設(shè)您的資源中有這個(gè) json 對(duì)象:


{

  "foo" : {

    "bar" : 42

  }

}

并且 Jackson ObjectMapper 已經(jīng)注入:


@Autowired

private ObjectMapper objectMapper;

選項(xiàng) 1:對(duì) JsonNode 使用通用方法


    @Autowired

    ObjectMapper objectMapper;


    @RequestMapping("/")

    JsonNode home() throws IOException {

        JsonNode jsonNode = objectMapper.readTree(resourceFile.getFile());

        return jsonNode.get("foo").get("bar");

    }

選項(xiàng) 2:https : //github.com/FasterXML/jackson-databind#1-minute-tutorial-pojos-to-json-and-back


查看完整回答
反對(duì) 回復(fù) 2021-12-01
?
慕哥6287543

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊

這只是帶有一些建議的@ibexit 答案的變體。


在 ibexit 答案中使用選項(xiàng) 2(使用 pojo),除非您確實(shí)需要 JsonNode(您需要 JsonNode 的可能性舍入為 0%)。

創(chuàng)建一個(gè) POJO 將您的 Json 表示為一個(gè)對(duì)象。請(qǐng)參閱下面的示例。

我建議您使用@JsonIgnoreProperties(ignoreUnknown = true)注釋。進(jìn)行谷歌搜索。

在您的示例中,不需要使用@JsonProperty注釋,但我喜歡使用它。

還有其他方法可以設(shè)置“ignoreUnknown”值,Jackson 文檔是一本很好且有價(jià)值的讀物。


POJO 示例


@JsonIgnoreProperties(ignoreUnknown = true)

public class TopClass

{

    @JsonProperty("foo") // This is optional in your example.

    private Foo foo;

}



@JsonIgnoreProperties(ignoreUnknown = true)

public class Foo

{

    @JsonProperty("bar")

    private int bar;

}

讀取 POJO 的示例代碼


private TopClass topClassVariableName;


topClassVariableName = objectMapper.readValue(JSON HERE, TopClass.class);


查看完整回答
反對(duì) 回復(fù) 2021-12-01
  • 2 回答
  • 0 關(guān)注
  • 272 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)