本文目录一览:
- 1、java的JSONArray怎么用?比如有一个JSONArray是 [{..."a":123, "
- 2、java怎么去除JSON数组的重复值
- 3、请问java如何清空JSONArray?
- 4、json数组如何去重
- 5、java的JSONArray如何使用?
java的JSONArray怎么用?比如有一个JSONArray是 [{..."a":123, "
import java.text.ParseException;
import org.json.JSONArray;
import org.json.JSONObject;
public class TestJsonArray {
public static void main(String[] args) throws ParseException {
String jsonStr = "[{\"a\":123, \"b\":\"hello\", \"x\":[{\"inner\":\"Inner JSONObject\"}]}]";
JSONArray jsonArray = new JSONArray(jsonStr);
JSONObject jsonObj = jsonArray.getJSONObject(0);
System.out.println(jsonObj);
int a = jsonObj.getInt("a");
String b = jsonObj.getString("b");
JSONArray jsonArrayX = jsonObj.getJSONArray("x");
System.out.println(a);
System.out.println(b);
System.out.println(jsonArrayX);
System.out.println(jsonArrayX.getJSONObject(0).getString("inner"));
}
}
java怎么去除JSON数组的重复值
对最佳回答进行修改,假设原始Json数组是这样的
原始JSONArry:[{"Value":"15153129877","Key":"09770985-9869-11e7-9c0d-fa163ef28f43"},{"Value":"15153129877","Key":"09770985-9869-11e7-9c0d-fa163ef28f43"}]
工具类如下:
/**
* 根据Key去重复
* @param array
*/
public static JSONArray delRepeatIndexid(JSONArray array) {
JSONArray arrayTemp = new JSONArray();
int num = 0;
for(int i = 0;i array.size();i++){
if(num==0){
arrayTemp.add(array.get(i));
}else{
int numJ = 0;
for(int j = 0;j arrayTemp.size(); j++){
JSONObject newJsonObjectI = (JSONObject)array.get(i);
JSONObject newJsonObjectJ = (JSONObject)arrayTemp.get(j);
String index_idI = newJsonObjectI.get("Key").toString();
String valueI = newJsonObjectI.get("Value").toString();
String index_idJ = newJsonObjectJ.get("Key").toString();
if(index_idI.equals(index_idJ)){
arrayTemp.remove(j);
JSONObject newObject = new JSONObject();
newObject.put("Key", index_idI);
newObject.put("Value", valueI);
arrayTemp.add(newObject);
break;
}
numJ++;
}
if(numJ-1 == arrayTemp.size()-1){
arrayTemp.add(array.get(i));
}
}
num++;
}
return arrayTemp;
}
处理结果
数据处理后JSONArry:[{"Value":"15153129877","Key":"09770985-9869-11e7-9c0d-fa163ef28f43"}]
完毕!!!!
请问java如何清空JSONArray?
JSONArray则是[]包裹起来的一个数组(Array)
如何清空jsonarray,有两种方法。
1、Java代码
JSONArray jsonArray= new JSONArray("[]");
2、Java代码
for (int i = 0, len = jsonArr.length(); i len; i++) {
JSONObject obj = jsonArr.getJSONObject(i);
obj.remove("key");
}
json数组如何去重
代码如下:
/**
* 去重复index_id项合并value值
* @param args
*/
public static JSONArray delRepeatIndexid(JSONArray array) {
JSONArray arrayTemp = new JSONArray();
int num = 0;
for(int i = 0;i array.size();i++){
if(num==0){
arrayTemp.add(array.get(i));
}else{
int numJ = 0;
for(int j = 0;j arrayTemp.size(); j++){
JSONObject newJsonObjectI = (JSONObject)array.get(i);
JSONObject newJsonObjectJ = (JSONObject)arrayTemp.get(j);
String index_idI = newJsonObjectI.get("index_id").toString();
String valueI = newJsonObjectI.get("value").toString();
String timeI = newJsonObjectI.get("time").toString();
String itemidI = newJsonObjectI.get("itemid").toString();
String index_idJ = newJsonObjectJ.get("index_id").toString();
String valueJ = newJsonObjectJ.get("value").toString();
if(index_idI.equals(index_idJ)){
int newValue = Integer.parseInt(valueI) + Integer.parseInt(valueJ);
arrayTemp.remove(j);
JSONObject newObject = new JSONObject();
newObject.put("index_id", index_idI);
newObject.put("itemid", itemidI);
newObject.put("time", timeI);
newObject.put("value", newValue);
arrayTemp.add(newObject);
break;
}
numJ++;
}
if(numJ-1 == arrayTemp.size()-1){
arrayTemp.add(array.get(i));
}
}
num++;
}
return arrayTemp;
}
java的JSONArray如何使用?
从json数组中得到相应java数组,如果要获取java数组中的元素,只需要遍历该数组。
数组内容如下:
/**
* 从json数组中得到相应java数组
* JSONArray下的toArray()方法的使用
* @param str
* @return
*/
public static Object[] getJsonToArray(String str) { JSONArray jsonArray = JSONArray.fromObject(str);
return jsonArray.toArray(); }
3.从json数组中得到java数组,可以对该数组进行转化,如将JSONArray转化为String型、Long型、Double型、Integer型、Date型等等。
4.分别采用jsonArray下的getString(index)、getLong(index)、getDouble(index)、getInt(index)等方法。
5.同样,如果要获取java数组中的元素,只需要遍历该数组。