java直接访问链接url,并对返回的json字符串进行解析

一,java访问url,并返回json 字符串

//parm:请求的url链接  返回的是json字符串
	public static String getURLContent(String urlStr) {               
	       
		//请求的url 
	    URL url = null;      
	    
	    //建立的http链接  
	    HttpURLConnection httpConn = null;  
	    
	    //请求的输入流
	    BufferedReader in = null;   
	    
	    //输入流的缓冲
	    StringBuffer sb = new StringBuffer(); 
	    
	    try{     
		     url = new URL(urlStr);     
		     
		     in = new BufferedReader(new InputStreamReader(url.openStream(),"UTF-8") ); 
		     
		     String str = null;  
		    
		     //一行一行进行读入
		     while((str = in.readLine()) != null) {    
		        sb.append( str );     
	         }     
        } catch (Exception ex) {   
	            
        } finally{    
	         try{             
		          if(in!=null) {  
		           in.close(); //关闭流    
	              }     
            }catch(IOException ex) {      
	        
            }     
        }     
        String result =sb.toString();     
        return result;    
    }  

二.对返回的json字符尽心解析,使用到的jar包



//将json字符串转换为json对象,进行解析
	public static void main(String[] args){
		
		//假设返回的json字符串为 strJson
		String strJson = "[{id:'001',name:'张三',age:'32'},{id:'002',name:'张四',age:'11'},{id:'003',name:'张五',age:'20'}]" ;
		
//		String strJson = getURLContent("https://www.wikidata.org/w/api.php?action=wbsearchentities&search=Fudan&language=en&limit=20&format=json") ;
		
		strJson="[" + strJson + "]" ;
		
		System.out.println(strJson) ;
		
		//将字符串转换为JSONArray对象
		try{
			JSONArray jsonArray = JSONArray.fromObject(strJson) ;
			
			if(jsonArray.size() > 0 ){
				//遍历jsonArray数组,把每个对象转成json对象
				for(int i = 0 ;i < jsonArray.size() ;i ++){
					
					JSONObject jsonObject = jsonArray.getJSONObject(i) ;
					     
					    //如果jsonOjbect中还包含jsonObject的话,就继续使用方法 getJSONObject(key) 返回下一层的json对象
//						JSONObject sub_jsonObject = jsonObject.getJSONObject("searchinfo") ;
						
					System.out.println(jsonObject.get("search")) ;
						
				}
			}
			
			
		}catch(Exception e){
			
		}
		
	}




Java中可以使用第三方库如Gson或Jackson来解析JSON字符串,并且可以通过修改对象属性的方式来更新其中的某个元素字段值。以下是使用Gson库的示例代码: ``` import com.google.gson.Gson; public class JsonExample { public static void main(String[] args) { String jsonString = "{\"name\":\"John\",\"age\":30,\"links\":[{\"name\":\"Google\",\"url\":\"https://www.google.com\"},{\"name\":\"Baidu\",\"url\":\"https://www.baidu.com\"}]}"; Gson gson = new Gson(); MyObject myObject = gson.fromJson(jsonString, MyObject.class); System.out.println(myObject); // Update the URL of the first link myObject.getLinks().get(0).setUrl("https://www.newurl.com"); // Convert the object back to JSON string String updatedJsonString = gson.toJson(myObject); System.out.println(updatedJsonString); } } class MyObject { private String name; private int age; private List<Link> links; // getters and setters @Override public String toString() { return "MyObject{" + "name='" + name + '\'' + ", age=" + age + ", links=" + links + '}'; } } class Link { private String name; private String url; // getters and setters @Override public String toString() { return "Link{" + "name='" + name + '\'' + ", url='" + url + '\'' + '}'; } } ``` 在这个例子中,我们首先使用Gson库将JSON字符串解析成一个Java对象。然后,我们可以通过访问对象的属性来获取或修改其中的元素字段值。在这个例子中,我们将第一个链接URL字段值更新为一个新的值。最后,我们将更新后的Java对象转换回JSON字符串
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值