導航:首頁 > 編程語言 > 獲取json的keyjava

獲取json的keyjava

發布時間:2023-09-02 09:40:35

『壹』 java解析json數據

一、 JSON (JavaScript Object Notation)一種簡單的數據格式,比xml更輕巧。
Json建構於兩種結構:
1、「名稱/值」對的集合(A collection of name/value pairs)。不同的語言中,它被理解為對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關聯數組 (associative array)。 如:
{
「name」:」jackson」,
「age」:100
}

2、值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數組(array)如:
{
「students」:
[
{「name」:」jackson」,「age」:100},
{「name」:」michael」,」age」:51}
]
}
二、java解析JSON步驟
A、伺服器端將數據轉換成json字元串
首先、伺服器端項目要導入json的jar包和json所依賴的jar包至builtPath路徑下(這些可以到JSON-lib官網下載:http://json-lib.sourceforge.net/)

然後將數據轉為json字元串,核心函數是:
public static String createJsonString(String key, Object value)
{
JSONObject jsonObject = new JSONObject();
jsonObject.put(key, value);
return jsonObject.toString();
}
B、客戶端將json字元串轉換為相應的javaBean
1、客戶端獲取json字元串(因為android項目中已經集成了json的jar包所以這里無需導入)
public class HttpUtil
{

public static String getJsonContent(String urlStr)
{
try
{// 獲取HttpURLConnection連接對象
URL url = new URL(urlStr);
HttpURLConnection httpConn = (HttpURLConnection) url
.openConnection();
// 設置連接屬性
httpConn.setConnectTimeout(3000);
httpConn.setDoInput(true);
httpConn.setRequestMethod("GET");
// 獲取相應碼
int respCode = httpConn.getResponseCode();
if (respCode == 200)
{
return ConvertStream2Json(httpConn.getInputStream());
}
}
catch (MalformedURLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}

private static String ConvertStream2Json(InputStream inputStream)
{
String jsonStr = "";
// ByteArrayOutputStream相當於內存輸出流
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
// 將輸入流轉移到內存輸出流中
try
{
while ((len = inputStream.read(buffer, 0, buffer.length)) != -1)
{
out.write(buffer, 0, len);
}
// 將內存流轉換為字元串
jsonStr = new String(out.toByteArray());
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return jsonStr;
}
}
2、獲取javaBean
public static Person getPerson(String jsonStr)
{
Person person = new Person();
try
{// 將json字元串轉換為json對象
JSONObject jsonObj = new JSONObject(jsonStr);
// 得到指定json key對象的value對象
JSONObject personObj = jsonObj.getJSONObject("person");
// 獲取之對象的所有屬性
person.setId(personObj.getInt("id"));
person.setName(personObj.getString("name"));
person.setAddress(personObj.getString("address"));
}
catch (JSONException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}

return person;
}

public static List<Person> getPersons(String jsonStr)
{
List<Person> list = new ArrayList<Person>();

JSONObject jsonObj;
try
{// 將json字元串轉換為json對象
jsonObj = new JSONObject(jsonStr);
// 得到指定json key對象的value對象
JSONArray personList = jsonObj.getJSONArray("persons");
// 遍歷jsonArray
for (int i = 0; i < personList.length(); i++)
{
// 獲取每一個json對象
JSONObject jsonItem = personList.getJSONObject(i);
// 獲取每一個json對象的值
Person person = new Person();
person.setId(jsonItem.getInt("id"));
person.setName(jsonItem.getString("name"));
person.setAddress(jsonItem.getString("address"));
list.add(person);
}
}
catch (JSONException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}

return list;
}

『貳』 JAVA 中 提取 alibaba.fastjson.JSONObject 字元串中的 KEY 和 VALUE 值

java.util.Iterator it = hashmap.entrySet().iterator();

while(it.hasNext()){

java.util.Map.Entry entry = (java.util.Map.Entry)it.next();

entry.getKey() 返回與此項對應蠢談胡侍陪的鍵

entry.getValue() 返帶攔回與此項對應的值

}

『叄』 Java如何獲取Json相同key對應的value

可以將這些字元串放在Java的JsonObject類中,通過這個唯談類的get方法獲卜山鏈取key相對應的value的值型孫

『肆』 java中從josn中取出相同key所對應的另一個key的集合

publicstaticvoidmain(String[]args)
{
Stringstring="[{"depid":"5","score":"10"},{"depid":"4","score":"40"},{"depid":"4","score":"30"},{"depid":"5","score":"30"}]";
JSONArrayfromObject=JSONArray.fromObject(string);
Map<String,Integer>map=newHashMap<String,Integer>();

for(Objectobject:fromObject)
{
轎激JSONObjectjsonObject=(JSONObject)object;
Stringdepid=(String)jsonObject.get("depid");
Integerscore=Integer.valueOf((String)jsonObject.get("score"));
梁帆賀if(map.containsKey(depid))
{
intinteger=map.get(depid);
map.put(depid,integer+score);
}
else
{
map.put(depid,score);
橡派}
}
Set<Entry<String,Integer>>entrySet=map.entrySet();
JSONArrayjsonArray=newJSONArray();

for(Entry<String,Integer>entry:entrySet)
{
JSONObjectjsonObject=newJSONObject();
jsonObject.put("depid",entry.getKey());
jsonObject.put("score",String.valueOf(entry.getValue()));
jsonArray.add(jsonObject);
}
System.out.println(jsonArray.toString());
}

『伍』 java怎麼取json數據的值

獲取JSON的值。 就是解析JSON數據.

如果是簡單的JSON數據, 並且只需要提取少量數據的值, 那麼可以使用字元串的操作來實現,比如String.subString()...等

如果是比較復雜的JSON數據,或者需要提取的值比較多, 那麼可以使用Gson, FastJSon 等第三方的jar來實現...

簡單的Demo示例

第三方包使用的是Gson

importcom.google.gson.JsonElement;
importcom.google.gson.JsonObject;
importcom.google.gson.JsonParser;

publicclassGsonTest{
publicstaticvoidmain(String[]args){
StringstrJson="{"name":"張三","age":12}";
JsonParserparser=newJsonParser();
JsonElementje=parser.parse(strJson);
JsonObjectjobj=je.getAsJsonObject();//從json元素轉變成json對象
Stringname=jobj.get("name").getAsString();//從json對象獲取指定屬性的值
System.out.println(name);
intage=jobj.get("age").getAsInt();
System.out.println(age);

}
}

『陸』 java JsonObject怎麼判斷一個json串中是否含有某個key值

代碼:

json.get("key")

(括弧里的是你要判斷的值或者參數)

閱讀全文

與獲取json的keyjava相關的資料

熱點內容
Linux造成xfs文件夾 瀏覽:455
華為手機怎麼修改wifi加密類型 瀏覽:248
伺服器封口是什麼意思 瀏覽:741
有限元分析是演算法嗎 瀏覽:901
空氣壓縮機性能曲線 瀏覽:20
京城程序員2019 瀏覽:403
android新系統 瀏覽:510
安卓80有什麼bug 瀏覽:678
如何做單機伺服器 瀏覽:943
校訊通查成績怎麼顯示伺服器異常 瀏覽:882
冰箱壓縮機工作壓力是多少 瀏覽:408
程序員20多平米租房 瀏覽:451
電工知識用線的演算法 瀏覽:338
極光推送php伺服器端 瀏覽:5
怎麼用命令方塊控制僵屍 瀏覽:774
大型雲伺服器有哪些 瀏覽:466
解壓版三國街機 瀏覽:424
去中心化app裡麵包含什麼 瀏覽:949
密鑰安裝命令行 瀏覽:505
文獻編譯英文 瀏覽:659