我有一项服务,其中包含将此服务作为网址
的信息包含图像中的JOSN数据
[{“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);
}
}
}
答案 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,但这需要更多有关使用情况的详细信息。
发布的另一个答案显示了实施情况。