Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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
如何将url输出(JSON)作为Java变量_Java_Json - Fatal编程技术网

如何将url输出(JSON)作为Java变量

如何将url输出(JSON)作为Java变量,java,json,Java,Json,我试图使用下面JSON对象中的rate值作为变量 网址是: 上述URL的输出类似于“{”到“:”印度卢比“,”汇率“:64.806700000000006,“从“:”美元“}”。我假设它是JSON对象。如何得到64的值,我应该通过解析得到它吗?Q:如何得到64的值,我应该通过解析得到它吗 A:是的 建议: 还可以将其反序列化为Java对象 有许多库支持此功能,包括: (安卓) Q:如何获得64的值,我应该通过解析来获得它吗 A:是的 建议: 还可以将其反序列化为Java对象 有许多库支持此

我试图使用下面JSON对象中的rate值作为变量

网址是:


上述URL的输出类似于“{”到“:”印度卢比“,”汇率“:64.806700000000006,“从“:”美元“}”。我假设它是JSON对象。如何得到64的值,我应该通过解析得到它吗?

Q:如何得到64的值,我应该通过解析得到它吗

A:是的

建议:

还可以将其反序列化为Java对象

有许多库支持此功能,包括:

  • (安卓)


Q:如何获得64的值,我应该通过解析来获得它吗

A:是的

建议:

还可以将其反序列化为Java对象

有许多库支持此功能,包括:

  • (安卓)


您可以使用
JSONObject
将字符串转换为对象

String responseString = "{'to': 'INR', 'rate': 64.806700000000006, 'from': 'USD'}";
JSONObject responseObject = new JSONObject(responseString);
Log.d("Response",responseObject.getString("rate")); //64.806700000000006

您可以使用
JSONObject
将字符串转换为对象

String responseString = "{'to': 'INR', 'rate': 64.806700000000006, 'from': 'USD'}";
JSONObject responseObject = new JSONObject(responseString);
Log.d("Response",responseObject.getString("rate")); //64.806700000000006

正如其他答案中提到的那样,反序列化JSON有很多选项,大多数情况下,最好定义一个对应的Java类,然后进行序列化/反序列化。实施的一个例子是:

public class Main {
    public static void main(String[] args) {
        Gson gson = new Gson();
        String jsonString = "{\"to\": \"INR\", \"rate\": 64.806700000000006, \"from\": \"USD\"}";
        CurrencyRate currencyRate = gson.fromJson(jsonString, CurrencyRate.class);
    }

    class CurrencyRate {
        private String from;
        private String to;
        private BigDecimal rate;

        public String getFrom() {
            return from;
        }

        public void setFrom(String from) {
            this.from = from;
        }

        public String getTo() {
            return to;
        }

        public void setTo(String to) {
            this.to = to;
        }

        public BigDecimal getRate() {
            return rate;
        }

        public void setRate(BigDecimal rate) {
            this.rate = rate;
        }
    }
}

Gson是线程安全的,所以只初始化一个Gson实例并在所有线程之间共享它是可以的。

正如其他答案中提到的,反序列化JSON有很多选项,大多数时候最好定义一个对应的Java类,然后进行序列化/反序列化。实施的一个例子是:

public class Main {
    public static void main(String[] args) {
        Gson gson = new Gson();
        String jsonString = "{\"to\": \"INR\", \"rate\": 64.806700000000006, \"from\": \"USD\"}";
        CurrencyRate currencyRate = gson.fromJson(jsonString, CurrencyRate.class);
    }

    class CurrencyRate {
        private String from;
        private String to;
        private BigDecimal rate;

        public String getFrom() {
            return from;
        }

        public void setFrom(String from) {
            this.from = from;
        }

        public String getTo() {
            return to;
        }

        public void setTo(String to) {
            this.to = to;
        }

        public BigDecimal getRate() {
            return rate;
        }

        public void setRate(BigDecimal rate) {
            this.rate = rate;
        }
    }
}

Gson是线程安全的,所以只初始化一个Gson实例并在所有线程之间共享它是可以的。

可能的重复的可能的重复的您这里有错误的语言。OP使用的是Java而不是JavaScription。这需要下载JSON库(如Jackson、JSON等)。在本例中,库是[JSON]:我使用的是JSONObject,没有下载Android Studio 2.3中的任何库。OP只说他们使用的是Java,而不是Android Studio。JSONObject不是标准Java库的一部分。您在这里使用了错误的语言。OP使用的是Java而不是JavaScription。这需要下载JSON库(如Jackson、JSON等)。在本例中,库是[JSON]:我使用的是JSONObject,没有下载Android Studio 2.3中的任何库。OP只说他们使用的是Java,而不是Android Studio。JSONObject不是标准Java库的一部分。