json字符串转java的Map<String,String>

package com.iqc.app.qc.common.util;

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

public class JsonToMap {

public static Map<String,String> toMap(String jsonString){
    ArrayList<String> listKey = new ArrayList<>();
    ArrayList<String> listValue = new ArrayList<>();
    int index = 0;
    readKey(listKey,listValue,index,jsonString);
    Map<String, String> map = new HashMap<>();
    for(int i = 0 ; i<listKey.size();i++){
        String key = null;
        String value = null;
        if(listKey.get(i).charAt(0) == ‘"‘){
            String s = listKey.get(i);
            key = s.substring(1,s.length()-1);
        }else {
            key = listKey.get(i);
        }
        if(listValue.get(i).charAt(0) == ‘"‘){
            String s = listValue.get(i);
            value = s.substring(1,s.length()-1);
        }else {
            value = listValue.get(i);
        }
        map.put(key,value);
    }
    return map;
}

public static void readKey(List<String> listKey,List<String> listValue, int index , String jsonString){
    int flag = 0;
    StringBuilder stringBuilder = new StringBuilder();
    for(int i = index ;i<jsonString.length();i++){
        char charAt = jsonString.charAt(i);
        if(charAt == ‘"‘){
            flag = flag + 1;
        }
        if(flag == 1){
            stringBuilder.append(jsonString.charAt(i));
        }
        if(flag == 2){
            listKey.add(stringBuilder.toString().substring(1,stringBuilder.length()));
            readValue(listKey,listValue,i+1,jsonString);
            return;
        }
    }
}

public static void readValue(List<String> listKey,List<String> listValue,int index , String jsonString){
    int flag1= 0;
    int flag2 = 0;
    int flag3 = 0;
    int flag4 = 0;
    StringBuilder stringBuilder = new StringBuilder();
    for(int i = index ;i<jsonString.length();i++){
        char charAt = jsonString.charAt(i);
        if(charAt == ‘"‘){
            flag1 = flag1 + 1;
        }
        if(charAt == ‘,‘){
            flag2 = flag2 + 1;
        }
        if(charAt == ‘{‘){
            flag3 = flag3 + 1;
        }
        if(charAt == ‘}‘){
            flag4 = flag4 + 1;
        }
        stringBuilder.append(jsonString.charAt(i));
        if(flag3 > 0 && flag4 == flag3 ){
            listValue.add(stringBuilder.toString().substring(1,stringBuilder.length()));
            readKey(listKey,listValue,i,jsonString);
            return;
        }
        if(flag3 == 0 && flag1 == 2 ){
            listValue.add(stringBuilder.toString().substring(1,stringBuilder.length()));
            readKey(listKey,listValue,i+1 ,jsonString);
            return;
        }
        if(flag3 == 0 && flag1 == 2){
            listValue.add(stringBuilder.toString().substring(1,stringBuilder.length()));
            readKey(listKey,listValue,i+1 ,jsonString);
            return;
        }
        if(flag3 == 0 && flag1 == 0 && (flag2 == 1 || flag4 == 1)){
            listValue.add(stringBuilder.toString().substring(1,stringBuilder.length()-1));
            readKey(listKey,listValue,i+1 ,jsonString);
            return;
        }
    }
}

}

原文地址:http://blog.51cto.com/12165865/2090240

时间: 2024-08-17 21:57:51

json字符串转java的Map<String,String>的相关文章

Json字符串转换为java对象

1.  Json字符串转换为java对象 1.1.  Json字符串转换为java bean Json2Bean.java package jackson; import java.io.IOException; import org.codehaus.jackson.map.ObjectMapper; public class Json2Bean { public static void main(String[] args) throws IOException{ String jsonSt

JSON 字符串 与 java 对象的转换

jsonLib 经典文章:http://json-lib.sourceforge.net/xref-test/net/sf/json/TestJSONObject.html // 引入相应的包 //json-lib-2.2-jdk15.jar import net.sf.json.JSONArray;import net.sf.json.JSONObject; 1. //把java 对象列表转换为json对象数组,并转为字符串 JSONArray array = JSONArray.fromOb

Json对象与Json字符串的转化、JSON字符串与Java对象的转换

Json对象与Json字符串的转化.JSON字符串与Java对象的转换 一.Json对象与Json字符串的转化 1.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 2.浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器: JSON.stringify(obj)将JSON转为字符串.JSON.parse(string)

JSON字符串与java对象的转换

所需的jar包: 1.commons-lang.jar 2.commons-beanutils.jar 3.commons-collections.jar 4.commons-logging.jar 5.ezmorph.jar 6.json-lib-2.2.2-jdk15.jar 1. 把java 对象列表转换为json对象数组,并转为字符串 JSONArray array = JSONArray.fromObject(userlist); String jsonstr = array.toSt

JSON 字符串 与 java 对象之间互相转换

首先引入maven需要依赖的jar: <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> <classifier>jdk15</classifier> </dependency> 需要导入的类: import net.sf.json

json字符串与java对象的相互转换(jackson)

1.java对象转换为json字符串 package com.chichung.json; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; public class JavaToJson { public static void main(String[] args) throws JsonProcessingExcepti

java json数据转List对象的集合-----阿里巴巴插件---及原生json---JSON 与 对象 、集合 之间的转换 JSON字符串和java对象的互转【json-lib】

List<RunfastFullLess> list=(List<RunfastFullLess>)JSONArray.parseObject(activity.getFullLesss(),RunfastFullLess.class); 使用阿里巴巴的json插件 <!--json数据转换的阿里巴巴依赖库--><dependency> <groupId>com.alibaba</groupId> <artifactId>

fastjson 将json字符串转化成List&lt;Map&lt;String, Object&gt;&gt;

亲测可行,如下: JSON.parseObject(jsonstr, new TypeReference<List<Map<String, Object>>>() {}); 用的是阿里巴巴的fastjson,  其中,jsonstr指的是list类型的json字符串:例如:[{"name":"xxx","age":12},{"name":"zzz","age&q

json字符串与java对象互转

在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好,下面先看下JSON的格式, JSON可以有两种格式,一种是对象格式的,另一种是数组对象, {"name":"JSON","address":"北京市西城区","age":25}//JSON的对象格式的字符串 [