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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

獲取 json 元素 URL 網(wǎng)絡(luò) bean

獲取 json 元素 URL 網(wǎng)絡(luò) bean

一只甜甜圈 2022-06-23 17:50:36
我正在嘗試從 JSON URL 獲取元素,但似乎沒有任何效果。我試圖創(chuàng)建一個對象來存儲響應(yīng),然后訪問它。它沒有用。這是我的代碼:public class JavaApplication4 {    public static void main(String[] args) {        try {            URL url = new URL("https://jsonplaceholder.typicode.com/todos/1");            BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));            String line;            while ((line = in.readLine()) != null) {                System.out.println(line);            }            in.close();        } catch (IOException e) {            e.printStackTrace();        }    }}這是運行該代碼的輸出:{  "userId": 1,  "id": 1,  "title": "delectus aut autem",  "completed": false}我想獲得各個鍵值。例如,我想獲取“title”的值。
查看完整描述

1 回答

?
牧羊人nacy

TA貢獻1862條經(jīng)驗 獲得超7個贊

有幾種第三方工具可以滿足您的需求,但您也可以使用 Java EE 的Java API for JSON Processing(有時容易混淆地稱為 JSON-P)來處理 URL 的 JSON 數(shù)據(jù),而無需了解該數(shù)據(jù)的結(jié)構(gòu)。


這是代碼,它使用 OP 中的代碼作為起點:


package com.unthreading;


import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.StringReader;

import java.net.URL;


import javax.json.Json;

import javax.json.stream.JsonParser;


public class App {


    public static void main(String[] args) throws IOException {

        StringBuilder jsonData = new StringBuilder();

        URL url = new URL("https://jsonplaceholder.typicode.com/todos/1");


        try (BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));) {

            String line;

            while ((line = br.readLine()) != null) {

                jsonData.append(line);

            }

        }

        new App().processUnknownJson(jsonData.toString());

    }


    private void processUnknownJson(String jsonData) {

        System.out.println("jsonData:" + jsonData);

        JsonParser parser = Json.createParser(new StringReader(jsonData));

        while (parser.hasNext()) {

            JsonParser.Event event = parser.next();

            switch (event) {

            case START_ARRAY:

            case END_ARRAY:

            case START_OBJECT:

            case END_OBJECT:

            case VALUE_FALSE:

            case VALUE_NULL:

            case VALUE_TRUE:

                System.out.println(event.toString());

                break;

            case KEY_NAME:

                System.out.print(event.toString() + " " + parser.getString() + " - ");

                break;

            case VALUE_STRING:

            case VALUE_NUMBER:

                System.out.println(event.toString() + " " + parser.getString());

                break;

            default:

                System.out.println("Unexpected event: " + event.toString());

            }

        }

    }

}

這是輸出,顯示從 URL 返回的 JSON 字符串,以及將該字符串解析為鍵/值對的結(jié)果:


jsonData:{  "userId": 1,  "id": 1,  "title": "delectus aut autem",  "completed": false}

START_OBJECT

KEY_NAME userId - VALUE_NUMBER 1

KEY_NAME id - VALUE_NUMBER 1

KEY_NAME title - VALUE_STRING delectus aut autem

KEY_NAME completed - VALUE_FALSE

END_OBJECT

解析代碼取自 Oracle 示例:Reading JSON Data Using a Parser。


我使用以下命令將應(yīng)用程序創(chuàng)建為一個簡單的 Maven 項目pom.xml:


<project xmlns="http://maven.apache.org/POM/4.0.0"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.unthreading</groupId>

    <artifactId>myjsonparser</artifactId>

    <version>0.0.1-SNAPSHOT</version>

    <packaging>jar</packaging>

    <name>myjsonparser</name>

    <url>http://maven.apache.org</url>

    <properties>

        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <java.version>11</java.version>

        <maven.compiler.source>${java.version}</maven.compiler.source>

        <maven.compiler.target>${java.version}</maven.compiler.target>

    </properties>

    <dependencies>

        <!-- https://mvnrepository.com/artifact/javax.json/javax.json-api -->

        <dependency>

            <groupId>javax.json</groupId>

            <artifactId>javax.json-api</artifactId>

            <version>1.1.4</version>

        </dependency>

        <dependency>

            <groupId>org.glassfish</groupId>

            <artifactId>javax.json</artifactId>

            <version>[1.1.2,)</version>

        </dependency>

    </dependencies>

</project>


查看完整回答
反對 回復(fù) 2022-06-23
  • 1 回答
  • 0 關(guān)注
  • 96 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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