• 大小: 6KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-18
  • 语言: 其他
  • 标签: jsonmap  

资源简介

用反射和递归自己写的map和json互转的底层实现,绝对值得下载

资源截图

代码片段和文件信息

package com.yue.util;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


@SuppressWarnings(“unchecked“)
public class JsonToMap {
// 用于判断開始執行時是否需要去掉最前面和最后面的括号
static int first = 0;
// 存放位置用于截取字符串
static StringBuffer sbf = new StringBuffer();
// 判读进入string类型时是否需要去掉最前面和最后面的括号
static int two = 0;
static Mapject> m = new HashMapject>();
// 逗号位置的存放
static Integer comma = 0;
// 存放字符串的长度
static int stringLength = 0;
// map类型的截取时需要的长度
static int number = 0;
// 存放第一个{位置
static int s_start;
// 存放第一个【的位置
static int s_bracket;
// list中需要删除的数量存放
static int remove = 0;
static int el = 0;
// 用来判断list被第几次执行
static int l_count = 0;
// 判读用于截取时remove的值是否需要改变
static int location = 0;
// 用于存放{}和【】的位置
static List l_deposit = new ArrayList();
static List l_store = new ArrayList();
// 用于存放{}和[]字符串的
static String ch = null;

// string类型的判断
static public Mapject> g_String(String str
Mapject> m1) {
if (two == 0) {
str = remove_bracket(str);
}
s_start = str.indexOf(“{“);
s_bracket = str.indexOf(“[“);
// 对第一个{或第一个 [判读从 而取的括号前的字符
if (s_bracket == -1 && s_start != -1) {
str = str.substring(0 s_start + 1);
} else if (s_start == -1 && s_bracket != -1) {
str = str.substring(0 s_bracket + 1);
} else if (s_start != -1 && s_bracket != -1) {
if (s_start > s_bracket) {
str = str.substring(0 s_bracket + 1);
} else {
str = str.substring(0 s_start + 1);
}
} else if (s_start == -1 && s_bracket == -1) {
str = str.toString();
}
String[] one = str.split(“\\:“);
if (one.length > 2) {
String strArray[] = str.split(““);
if (strArray.length > 0) {
for (int i = 0 lg = strArray.length; i < lg; i++) {
String[] strArray1 = strArray[i].split(“:“);
if (!strArray1[1].equals(“{“) && !strArray1[1].equals(“[“)) {
m1.put(strArray1[0] strArray1[1]);
}
// 对最后字符为{判断
if (str.indexOf(“{“) != -1 || str.indexOf(“[“) != -1) {
// 
comma = str.lastIndexOf(““);
} else {
// 对全部为String的判断
comma = str.length() - 1;
}
}
}
} else {
if (!one[1].equals(“{“) && !one[1].equals(“[“) && one.length <= 2) {
comma = str.length() - 1;
m1.put(one[0] one[1]);
}
}
return m1;
}

// map类型的判断
static public Mapject> json_map(String jsonString Map m) {
l_deposit.clear();
l_store.clear();
// 取得{和}的位置
String ch = “{“;
bracketLocation(ch l_deposit jsonString);
// 找出在字符串中所有的}的所有位置
ch = “}“;
bracketLocation(ch l_store jsonString);
//
for (int iv = 0 lg = l_store.size(); iv < lg; iv++) {
int ee = 0;
int dfi = l_store.get(iv);
for (int v = 0 lg1 = l_deposit.size(); v < lg1; v++) {
int df = l_deposit.get(v);
if (dfi > df) {
ee++;
}
}
// 在map

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      23492  2014-05-08 22:27  手写json和map互转\JsonToMap.java

     文件       6188  2014-04-30 18:27  手写json和map互转\MapToJson.java

     目录          0  2014-05-17 21:11  手写json和map互转

----------- ---------  ---------- -----  ----

                29680                    3


评论

共有 条评论

相关资源