首页 > 解决方案 > 使用正则表达式替换 json 值

问题描述

String inputJson = "{\r\n" + 
            "  \"fullName\" : \"Hamo\",\r\n" + 
            "  \"staff\" : false,\r\n" + 
            "  \"supr\" : true,\r\n" + 
            "  \"permissions\" : [ \"Perm1\", \"Perm2\" ],\r\n" + 
            "  \"services\" : [ \"Serv1\", \"Serv2\" ],\r\n" + 
            "  \"authToken\" : \"1234567890abcdefghaijklmnopqrstuvwxyz\",\r\n" + 
            "  \"customerId\" : 12345,\r\n" + 
            "  \"clients\" : [ 1, 3, 8 ],\r\n" + 
            "  \"wts\" : false,\r\n" + 
            //yyyy-MM-dd
            "  \"testDate\" : \"1982-09-21\"\r\n" + 
            "}";

我需要使用正则表达式将 authToken 值替换为另一个字符串。这个问题被编辑了,因为它没有被正确地问到。

标签: javastring

解决方案


如果没有 JSON 类,则剩下:

inputJson = inputJson.replaceFirst("(\"authToken\"\\s*:\\s*\")[^\"]*\"",
    "$1" + authToken + "\"");

这假设 authToken 不包含一美元$


推荐阅读