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

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

如何在 Java 中將 JSON 轉(zhuǎn)換為對(duì)象格式?

如何在 Java 中將 JSON 轉(zhuǎn)換為對(duì)象格式?

慕森王 2023-05-17 17:01:11
如何將其轉(zhuǎn)換為對(duì)象格式?public String ExposeServices() {? ? ? ? RestTemplate restTemplate= new RestTemplate();? ? ? ? String forresouseURL="https://jsonplaceholder.typicode.com/posts";? ? ? ? ResponseEntity<String> response= restTemplate.getForEntity(forresouseURL, String.class);? ? ? ? Gson gson = new Gson(); // Or use new GsonBuilder().create();? ? ? ? String target2 = gson.toJson(response, User.class);? ? ? ? HashMap<String, String> jsonObject= response;? ? ? ? System.out.println(target2);? ? ? ? //response.getBody().? ? ? ? return target2;?? ? }這是我嘗試過的,但它沒有返回任何值。我必須以對(duì)象格式獲取 JOSN 值,然后必須插入到 MySQL 數(shù)據(jù)庫中。
查看完整描述

4 回答

?
吃雞游戲

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

您擁有的鏈接的響應(yīng)不是User,而是List<User>- 嘗試反序列化。


您的代碼應(yīng)該與此類似(我試圖稍微美化一下):


    public List<User> exposeServices() {

        RestTemplate restTemplate= new RestTemplate();

        ResponseEntity<String> response= restTemplate.getForEntity("https://jsonplaceholder.typicode.com/posts", String.class);

        Gson gson = new Gson();

        return gson.fromJson(response.getBody(), List.class);

    }

另外,如果您沒有特定的使用理由Gson,我認(rèn)為您可以這樣做:


    public List<User> exposeServices() {

        RestTemplate restTemplate= new RestTemplate();

        return restTemplate.getForEntity("https://jsonplaceholder.typicode.com/posts", List.class).getBody();

    }

如評(píng)論中所述,這對(duì)演員表有警告。


查看完整回答
反對(duì) 回復(fù) 2023-05-17
?
桃花長(zhǎng)相依

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

Jackson 是一個(gè) JSON 序列化器/反序列化器,默認(rèn)包含在 spring 中并被RestTemplate默認(rèn)使用。


端點(diǎn)返回的是用戶列表,因此您不能將其User直接反序列化為 a,它必須是 a 類型List<User>。


public List<User> exposeServices() {

? ? RestTemplate restTemplate= new RestTemplate();

? ? return restTemplate.exchange("https://jsonplaceholder.typicode.com/posts",?

? ? ? ? HttpMethod.GET,?

? ? ? ? null,? ?

? ? ? ? new ParameterizedTypeReference<List<User>>() {})

? ? ? ? .getBody();

}

如果你只是傳入List.class它RestTemplate,它將不知道你希望你的列表包含什么,你可能會(huì)從編譯器那里得到一個(gè)警告。


我們可以通過將 our 包裝List<User>到一個(gè)ParameterizedTypeReference用于此的類型中來繞過它,用于向類型添加參數(shù)(列表是一種類型,它需要一個(gè)參數(shù),在本例中為用戶)。

查看完整回答
反對(duì) 回復(fù) 2023-05-17
?
小怪獸愛吃肉

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

您可以為此使用以下解決方案


首先,您需要三個(gè)庫“Jackson-Databind”、“jackson-annotations”、“jackson-core”,它們應(yīng)該是同一版本。以下是示例代碼


String jsonString = "<The json user list you received>";

     ObjectMapper mapper = new ObjectMapper();


    List user =  mapper.readValue(jsonString.getBytes(), List.class);


    Iterator it = user.iterator();


    List<User> userList = new ArrayList<>();


    while(it.hasNext())

    {

        User receivedUser = new User();

        LinkedHashMap receivedMap = (LinkedHashMap)it.next();

        receivedUser.setUserId((Integer)receivedMap.get("userId"));

        receivedUser.setId((Integer)receivedMap.get("id"));

        receivedUser.setTitle((String)receivedMap.get("title"));

        receivedUser.setBody((String)receivedMap.get("body"));

        userList.add(receivedUser);

    }

我已經(jīng)創(chuàng)建了用戶類。最后 userList 將包含所有來的用戶。


查看完整回答
反對(duì) 回復(fù) 2023-05-17
?
開心每一天1111

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

您的解決方案是使用數(shù)組而不是一個(gè)對(duì)象:

User[] users = gson.fromJson(response, User[].class);


查看完整回答
反對(duì) 回復(fù) 2023-05-17
  • 4 回答
  • 0 關(guān)注
  • 209 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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