gpt4 book ai didi

java - 如何在 java 中使用 JSON 输出

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:28:39 27 4
gpt4 key购买 nike

我正在制作一个从 Google Maps API 获取 Json 距离矩阵的程序。到目前为止,我编写的程序可以获得如下所示的 json

  {
"destination_addresses" : [
"Paris, France",
"Toulon, France",
"Nantes, France",
"Marseille, France"
],
"origin_addresses" : [
"Paris, France",
"Toulon, France",
"Nantes, France",
"Marseille, France"
],
"rows" : [
{
"elements" : [
{
"distance" : {
"text" : "1 m",
"value" : 0
},
"duration" : {
"text" : "1 min",
"value" : 0
},
"status" : "OK"
},
{
"distance" : {
"text" : "839 km",
"value" : 838906
},
"duration" : {
"text" : "7 hours 21 mins",
"value" : 26476
},
"status" : "OK"
},
{
"distance" : {
"text" : "384 km",
"value" : 384421
},
"duration" : {
"text" : "3 hours 34 mins",
"value" : 12823
},
"status" : "OK"
},
{
"distance" : {
"text" : "774 km",
"value" : 774398
},
"duration" : {
"text" : "6 hours 48 mins",
"value" : 24490
},
"status" : "OK"
}
]
},

现在我想做的是像这样创建一个距离矩阵

       [ Paris        Toulon     Nantes         Marseille ]
[Paris 0 838906 384421 774398 ]
[Toulon value 0 value value]
[Nantes value value 0 value]
[Marseille value value value 0 ]

** 这些值代表城市之间的距离。

(当然是 java 形式),稍后我将用它来解决 TSP。我需要元素 --> 距离 --> 值中的值。任何帮助,将不胜感激。提前致谢。

最佳答案

您可以使用 org.codehaus.jettison.json.JSONArray对于相同的(Download jar)。

示例代码:

   JSONObject json = new JSONObject(result_string);
JSONArray rows = json .getJSONArray("rows");

为 TCP 问题创建距离矩阵:

您可以使用以下代码:

            JSONObject json1 = new JSONObject(json);
String places[] ={"Paris" , "Toulon" , "Nantes" , "Marseille" };
String[][] result=new String[places.length][places.length];
JSONArray rows = json1.getJSONArray("rows");
//JSONObject[] elements=new JSONObject[places.length];
for (int i = 0; i < rows.length(); i++) {
JSONObject obj=rows.getJSONObject(i);
JSONArray elements=obj.getJSONArray("elements");
for (int j = 0; j < elements.length(); j++) {
JSONObject elem=elements.getJSONObject(j);
JSONObject distance = elem.getJSONObject("distance");
result[i][j]=distance.getString("value");
}

}
for (int i = 0; i < result.length; i++) {
String row[]=result[i];
for (int j = 0; j < row.length; j++) {
System.out.print(" " +row[j] + " , ");
}
System.out.println();
}

像这样你可以得到json字符串的值。

关于java - 如何在 java 中使用 JSON 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20965229/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com