首页
学习
活动
专区
圈层
工具
发布

用 Windsurf 从0实现高性能JSON解析器

为了探索和改进 AI 工具在编程方面的体验,同时也想验证一些 AI 的边界,于是又想到了尝试从 0 实现高性能JSON解析器,说干就干。...比如本项目最开始的 Prompt 是: 用 golang 实现一个类似标准库 "encoding/json" 的 JSON 解析器,可以参考 github 的 cJSON 通过如上 Prompt,将会获得比较粗的代码实现...提供方向性的指引 提出一个问题 让 AI 解决,可能方案有很多,比如 JSON 解析可以用方案: 递归下降方法,边解析边赋值(流式解析) 分阶段解析(词法+语法分析) 但是 AI 一开始并不一定能给出最优的方案...,比如本项目开始提供分阶段解析方案,但是参考其他的开源项目,都是用流式解析,该方案对于 JSON 解析器比较合适(因为没有需要动态计算的过程,所以扫一遍就可以处理,性能要比分段解析好),当然也要考虑业务场景...不过值得注意的是,当提出用 JIT 等方案优化,AI 会提示方案不合理(实现的确不合理,JIT 需要增加各种适配代码)。 5.

27210

19.JAVA-从文件中解析json、并写入Json文件(详解)

//name为名称,值对为"john"字符串 值对类型共分为: 数字(整数或浮点数) 字符串(在双引号中) 逻辑值(true 或 false) 数组(在方括号[]中) 对象(在花括号{}中) null...包使用 在www.json.org上公布了很多JAVA下的json解析工具(还有C/C++等等相关的),其中org.json和json-lib比较简单,两者使用上差不多,这里我们使用org.json,org.json...q=g:org.json%20AND%20a:json&core=gav 3.json解析 3.1解析步骤 首先通过new JSONObject(String)来构造一个json对象,并将json字符串传递进来...{ "Name": "array4", "String": "哈哈哒4" } ] } 3.3解析代码如下...对象 JSONObject obj = new JSONObject(text.substring(text.indexOf("{"))); //过滤读出的utf-8前三个标签字节,从{

14K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Spring 全家桶之 Spring Web MVC(六)- AJAX & Fileupload

    浏览器中显示了所有员工的数据,并以JSON格式进行展示 @JsonIgnore @JsonIgnore注解可以将某些属性在转换成JSON格式数据时进行忽略,在Employee实体类的Department...,点击发送超链接 浏览器发送的请求体为JSON格式的数据 @RequestBody注解将JSON格式数据转换成Employee实体类对象 HttpEntity HttpEntity是指请求和响应的实体类...,包含了消息头和消息体,可以从该类中获取请求头请求体以及响应头响应体信息。...Spring MVC文件上传需要在Spring MVC配置文件上配置上传解析器CommonsMultpartResolver,否则无法解析文件上传请求,会出现http 400的报错 <!...的值为:" + username); return "forward:/upload.jsp"; } 重新启动应用,浏览器打开upload.jsp页面 表单中输入内容,并点击提交 页面提示文件上传成功

    1.6K20

    SpringMVC入门终结篇

    ResponseEntity响应数据的同时,可以自定义响应头 ,HttpEntity获取响应体数据的同时,获取响应头 对于这些怪异的返回值,视图解析器就不会进行拼串了,具体工作机制,看源码...通过MessageSource对象,来获取国际化资源文件中对应key对应的值,也可以获取国际化资源文件中的错误信息 自定义区域信息解析器----实现点击不同超链接,切换当前页面的语言 将自定义区域解析器放到容器中...@ResponseBody//将返回的数据放在响应体中,如果返回的是对象,jackson自动将对象转换为json格式 @RequestMapping("/getAllAjax")...,可以自定义响应头 ,HttpEntity获取响应体数据的同时,获取响应头 对于这些怪异的返回值,视图解析器就不会进行拼串了,具体工作机制,看源码 ---- SpringMVC的文件上传...拦截器使用 1.配置文件中配置解析器和拦截器 <!

    1.7K30

    推荐学java——SpringMVC第一课

    bean> MyController中的使用代码如下: // 将请求结果给要展示的 jsp 页面 //modelAndView.setViewName("/WEB-INF/view/result.jsp...中新增一个表单: 用java对象接收 带参数的请求 要求:请求中的参数名和java对象中的属性名一致 --%> <form action="test/param_object.do...: /** * 演示 用java对象接收 带参数的请求 * 要求:请求中的参数名和java对象中的属性名一致、java对象中提供无参构造方法 * * @return */ @RequestMapping...return "result"; // 要使用全路径的话,那么不能使用视图解析器 //return "/WEB-INF/view/result.jsp"; } 如果只返回视图,...第三步,在index.jsp页面中发起请求 首先在head标签下,引入我们添加的jquery-js库,代码如下: <script charset="UTF-8" type="text/javascript

    1.8K50

    JAVAEE框架技术之5-springMVC参数绑定和异步交互

    在异步请求中数据传输的格式我们都是使用josn来进行传输,速度快,小巧,使用方便!! 在响应的同时,我们也是响应json字符串,在前端解析json字符串即可!...)之后,写入到response对象的响应体中。...json串 * @return */ @PostMapping("ajaxResponse") @ResponseBody //返回的对象以json的形式响应...json数据,使用@RequestBody注解就可以自动的封装指定的对象中 引入jq文件 jquery-3.4.1.js"> 编写ajax代码 使用:...json字符串,转为指定类型的java对象 ​​@ResponseBody​​:将java对象转为json字符串,再设置到响应体中,返回到浏览器(客户端) 处理静态资源 测试前端代码 当点击按钮时,发现没有任何反应

    27510

    Spring系列 SpringMVC的请求与数据响应

    SpringMVC的数据响应 数据响应的方式 y以下案例均部署在Tomcat上,使用浏览器来访问一个简单的success.jsp页面来实现 Success.jsp页面代码 1.页面跳转 直接返回字符串 返回Model与View模型 2.回写数据 直接返回字符串 返回对象或集合 在spring-mvc.xml中配置内部视图资源解析器...4.使用json格式回写字符串 手动拼接json格式字符串的方式很麻烦,开发中往往要将复杂的java对象转换成json格式的字符串,我们可以使用web阶段学习过的json转换工具jackson进行转换...在 SpringMVC 的各个组件中,处理器映射器、处理器适配器、视图解析器称为 SpringMVC 的三大组件。...** 4.当我们用表单提交中文的数据的时候,会出现乱码,这时候我们就要配置一个过滤器进行编码的过滤,同样是在web.XML中进行配置 ** 配置的代码 <!

    1.3K40

    Ajax 学习总结

    , 4(已经完成)      3. responseText -- -- 服务器的响应,表示为一个串     4. responseXML -- -- 服务器的响应,表示为XML 可以解析为 DOM 对象...页面中解析为 XML 获取标签内容然后加入页面     xmlTest.jsp 1 <%-- 2 Created by IntelliJ IDEA. 3 User: yin‘zhao...当浏览器接收到较长的 XML 文档时 DOM 解析可能会很复杂       3. JSON 的语法严谨,代码不宜读     2.5.3 适用场景       1....当远程程序未知时 XML 文档是首选 三、案例再实现(使用 JQuery 实现)   案例效果如上,只是实现方式为 JQuery   3.1 JQuery 中 Ajax 的 API     1. load...等数据格式;args 为 JSON 格式的传递参数;响应结束时触发回调函数,其响应结果在函数参数中     5. $.getJSON() -- -- 对于 JSON 传输格式直接使用该方法,参数和 $

    1.9K70

    Spring系列 SpringMVC的请求与数据响应

    Spring系列 SpringMVC的请求与数据响应 [在这里插入图片描述] SpringMVC的数据响应 数据响应的方式 y以下案例均部署在Tomcat上,使用浏览器来访问一个简单的success.jsp...body> **1.页面跳转** 直接返回字符串 返回Model与View模型 **2.回写数据** 直接返回字符串 返回对象或集合 **在spring-mvc.xml中配置内部视图资源解析器...格式回写字符串** 手动拼接json格式字符串的方式很麻烦,开发中往往要将复杂的java对象转换成json格式的字符串,我们可以使用web阶段学习过的json转换工具jackson进行转换,通过jackson...(user); return json; } } **5.SpringMVC的数据响应-回写数据-返回对象或集合** **使用配置文件方式** **在spring-mvc.XML...--mvc的注解驱动--> 在 SpringMVC 的各个组件中,处理器映射器、处理器适配器、视图解析器称为 SpringMVC 的三大组件。

    1.3K00

    springmvc笔记_SpringMVC优点

    处理请求–调用相关的业务处理–封装响应数据 . 将响应的数据进行渲染 . jsp / html 等表示层数据 ....7、创建视图层 在WEB-INF/ jsp目录中创建hello.jsp , 视图可以直接取出并展示从Controller带回的信息; 可以通过EL表示取出Model中存放的值,或者对象; 中的所有响应请求的方法都是以该地址作为父路径。...XHR为向服务器发送请求和解析服务器响应提供了接口。能够以异步方式从服务器获取新数据。 jQuery 提供多个与 AJAX 有关的方法。...通过 jQuery AJAX 方法,您能够使用 HTTP Get 和 HTTP Post 从远程服务器上请求文本、HTML、XML 或 JSON – 同时您能够把这些外部数据直接载入网页的被选元素中。

    5.3K10
    领券