导航:首页 > 编程语言 > 获取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相关的资料

热点内容
大型云服务器有哪些 浏览:463
解压版三国街机 浏览:421
去中心化app里面包含什么 浏览:948
密钥安装命令行 浏览:505
文献编译英文 浏览:659
php调用浏览器 浏览:527
数控车床编程初学实例 浏览:949
cad中筛选命令是什么 浏览:800
数控铣床法兰克编程 浏览:330
怎么样分解压缩包图标 浏览:619
php两年工作经验简历 浏览:765
怎么提前解压房贷 浏览:699
反诈宣传app哪里可以拿到用户资料 浏览:856
华为交换机命令配置 浏览:11
电机pid算法实例c语言 浏览:972
安装ue5未找到金属编译器 浏览:964
l1压缩性骨折微创手术 浏览:615
看电脑配置命令 浏览:109
单片机调用db数值偏移量 浏览:446
奔驰smart车型压缩机功率 浏览:529