package wordcount.算数表达式;import org.apache.commons.io.IOUtils;import java.io.FileReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class Str2Map {public String strs;int position=0;Object current;Object nextToken(){while (position<strs.length()){switch (strs.charAt(position)){case '\r':position++ ; break;case '\n':position++ ; break;case '\t':position++ ; break;case ' ':position++ ; break;case '"':return current=getStr('"');case '\'':return current=getStr('\'');case '{':++position;return current=Token.LJ;case '}':++position;return current=Token.RJ;case '[':++position;return current=Token.LA;case ']':++position;return current=Token.RA;case ',':++position;return current=Token.DOUHAO;case ':':++position;return current=Token.MAO;case 'n':position+=4;return current=Token.NULL;default:{if( '0'<=strs.charAt(position) && strs.charAt(position)<='9'){return current=getNum();}}}}return null;}private Number getNum() {StringBuffer stringBuffer=new StringBuffer();boolean isDouble=false;while ('0'<=strs.charAt(position) && strs.charAt(position)<='9'||strs.charAt(position)=='.'){if(strs.charAt(position)=='.'){isDouble=true;}stringBuffer.append(strs.charAt(position));position++;}if(!isDouble) {return Integer.valueOf(stringBuffer.toString());}else{return Double.valueOf(stringBuffer.toString());}}public String getStr(char end){StringBuffer stringBuffer=new StringBuffer();position++;while (strs.charAt(position)!=end){stringBuffer.append(strs.charAt(position));position++;}position++;return stringBuffer.toString();}public Map<String,Object> getJSON(){Map<String,Object> json=new HashMap<>();nextToken();while (current!=Token.RJ){String key= (String) current;nextToken();Object o = nextToken();if(o == Token.NULL){json.put(key,null );nextToken();}else if(!(o instanceof Token)){json.put(key,o );nextToken();}else if ( o == Token.LJ){json.put(key,getJSON() );}else if( o == Token.LA){json.put(key, getArr());}if(current == Token.DOUHAO){nextToken();}}nextToken();return json;}public List getArr(){List list=new ArrayList();nextToken();while (current!=Token.RA){if(current == Token.LA){list.add(getArr());}else if(current == Token.LJ){list.add(getJSON());}else{if(current == Token.NULL){list.add(null);}else {list.add(current);}nextToken();}if(current == Token.DOUHAO){nextToken();}}nextToken();return list;}Object getObj(){nextToken();if(current==Token.LJ){return getJSON();}else{return getArr();}}public static void main(String[] args) throws Exception {Str2Map str2Map=new Str2Map();str2Map.strs=IOUtils.toString(new FileReader("C:\\Users\\Administrator\\Desktop\\bb\\case.txt"));System.out.println(str2Map.getObj());}
}
//{"a":"a1","b":123,"c":{"a":"a1","b":123},"d":{"a":"a1","b":123,"c":{"a":"a1","b":123}}}
package wordcount.算数表达式;public enum Token {LJ("{"),RJ("}"),LA("["),RA("]"),DOUHAO(","),MAO(":"),NULL("null") ;String str;private Token(String str){this.str=str;}}

字符串转json对象相关推荐

  1. JAVA中如何将一个json形式的字符串转为json对象或对象列表

    import java.util.*; import java.text.SimpleDateFormat;import org.json.JSONObject; import org.json.JS ...

  2. FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换

    fastJson对于json格式字符串的解析主要用到了一下三个类: JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换. JSONObject:fas ...

  3. jq js json 转字符串_JQuery如何把JSON字符串转为JSON对象

    本文介绍JQuery如何把JSON字符串转为JSON对象. HTML代码 下面的HTML代码实现JQuery把JSON字符串转为JSON对象. Name: Age: City: Country: va ...

  4. Json字符串和Json对象的简单总结

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON成为理想的数据交换语言. 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率). ...

  5. JSON字符串与JSON对象的区别

    JSON JavaScript Object Notation是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式. json可以以数组传递,也可以以对象传递. 在数据传输流 ...

  6. 转换字符串为json对象的方法

          JSON是一种便于操作使用的轻量级数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.具体介绍请查看:[url]http://www.json.org[/url]. 很多时候我们需要 ...

  7. JSON | JSON字符串和JSON对象的区别

    最近在学习Vue.js,里面有个存储.读取本地缓存的功能,不停地用JSON.parse(),和JSON.stringify()来转换JSON字符串和JSON对象.自己有点晕,不明白两者的区别,看起来感 ...

  8. js中string字符串转换为JSON对象 - 方法大全(4种)

    js中string字符串转换为JSON对象 - 方法大全(4种) jQuery插件支持的转换方式: 示例: //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对 ...

  9. jquery:字符串转json对象,json对象转字符串

    jquery:字符串转json对象,json对象转字符串 JSON字符串: var str = '{ "name": "cxh", "sex" ...

  10. json字符串,JSON对象,JSON数组的区别与相互转换

    JSON数组,json字符串,JSON对象,数组的区别与基本操作整理 JSON对象是直接可以使用JQuery操作的格式 JSON字符串仅仅只是一个字符串,一个整体,不截取的话没办法取出其中存储的数据, ...

最新文章

  1. 会数据分析的人别再低调了,我怕你会因此错失100万奖金
  2. 云原生安全的挑战与实践
  3. BZOJ3246 IOI2013Dreaming
  4. 鼎捷软件怎么样_凯里物流仓储怎么样
  5. 缓存机制与局部性原理
  6. 计算机类专业权威解读,09计算机考研统考大纲权威解读之操作系统
  7. 如何使用GDAL进行图像镶嵌
  8. 2020阿里笔试编程题
  9. 基于 Openpose 实现人体动作识别
  10. 雅虎助手,thanks
  11. Android实现通话呼叫转移与监听通话录音功能
  12. 【deepstream部署Yolov6】
  13. 【Android Camera】SOF Freeze
  14. 2014.7.8 第一天学习hfss13
  15. NLP实现文本分词+在线词云实现工具
  16. Linux I/O编程
  17. “两两”求和问题技巧
  18. 阿里云倒逼亚马逊提高市场竞争?AWS CEO安迪·贾西谈量子计算与AI
  19. UE4 骨骼动画 蓝图中调节某一根骨骼
  20. 创维电视linux系统怎么连接wifi,创维电视怎么连接wifi

热门文章

  1. Linux – TFTP服务器搭建 FTP服务器搭建
  2. Direct2D学习教程(一)
  3. 写出高斯定理的数学形式并文字解释
  4. [转载]中国文明网:为青少年“防沉迷”汇聚合力
  5. TopCoder比赛简介
  6. 微软认证考试全国各地考点名录
  7. KindEditor 详细介绍
  8. Mybatis——类型处理器TypeHandler
  9. 世界上最难的5种编程语言
  10. Setup Time与Hold Time