如何从URL IN JAVA中读取数组JSON

时间:2017-08-07 11:56:18

标签: java json

我有一项服务,其中包含将此服务作为网址

的信息

包含图像中的JOSN数据

enter image description here

[{“sfname”:“نبأ”,“ssname”:“محمد”,“stname”:“حسين”,“sno”:“201613”,“class_name”:“الصفالاولالابتدائي”},{“ sfname“:”مينا“,”ssname“:”مظفر“,”stname“:”عبدالامير“,”sno“:”201618“,”class_name“:”الصفالاولالابتدائي“},....... }]

如何在java中使用reed并访问每一行以及列和字段

如果可能,我想将所有这些信息存储在数据库中的JOSN中

更新>>

这是如何从URL

获取数据JSONarray的完整解决方案
package httprequset;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.net.URL;
import java.net.URLConnection;

import org.json.JSONArray;
import org.json.JSONObject;

public class httptest {


      public static String getText(String url) throws Exception {
            URL website = new URL(url);
            URLConnection connection = website.openConnection();
            BufferedReader in = new BufferedReader( new InputStreamReader(connection.getInputStream(),"UTF8"));

            StringBuilder response = new StringBuilder();
            String inputLine;

            while ((inputLine = in.readLine()) != null) 
                response.append(inputLine);

            in.close();

            return response.toString();
        }





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

            //System.out.println(getText("http://localhost:9090/roz/stdjson.php"));

            JSONArray jsonArray=new JSONArray(getText("http://localhost:9090/roz/stdjson.php")); 
            //iterate loop
             for(int i=0;i<jsonArray.length();i++){

                //get the JSON Object 
                JSONObject obj=jsonArray.getJSONObject(i); 
                String sfname=obj.getString("sfname"); 
                String stname=obj.getString("stname"); 
                System.out.println(stname);

             }
    }

}

2 个答案:

答案 0 :(得分:3)

     JSONArray jsonArray=new JSONArray(responseString); 
    //iterate loop
     for(int i=0;i<jsonArray.length();i++){

        //get the JSON Object 
        JSONObject obj=jsonArray.getJSONObject(i); 
        String sfname=obj.getString("sfname"); 
        String stname=obj.getString("stname"); 

     }

答案 1 :(得分:1)

首先,您需要知道JSON并不能真正使用列和字段,而是使用对象和数组(请参阅http://www.json.org/)。

我建议使用库作为实现,然后加载数据,这是一个包含Objects的数组(本身包含字段)。 (例如:https://github.com/fangyidong/json-simple)。

获得数组后(作为JSONArray),您可以遍历JSONObjects并找到嵌套在字段中的信息。

对于数据库存储,我不建议将其直接存储为JSON(好吧,它仍然取决于你的问题),我会创建方法来通过你自己定义的Java对象(使用构造函数获取JSONObject)来保存它将存储为List,但这需要更多有关使用情况的详细信息。

发布的另一个答案显示了实施情况。