一、连接SQL Server数据库

  • 连接sql Server数据库需要导入sqljdbc.jar包。
  • 使用com.microsoft.sqlserver.jdbc.SQLServerDriver驱动。
  • 连接数据库url为jdbc:sqlserver:localhost:1433;DatabaseName=student

二、对JDBC执行结果的遍历与判断

——–参考 execute、executeUpdate、executeQuery三者的区别(及返回值)

1、boolean execute(String sql)

允许执行查询语句、更新语句、DDL语句。

返回值为true时,表示执行的是查询语句,可以通过getResultSet方法获取结果;返回值为false时,执行的是更新语句或DDL语句,getUpdateCount方法获取更新的记录数量。

public static void main(String[] args) {  
    Connection conn = null;  
    Statement stm = null;  
    ResultSet rs = null;  
    try {  
         Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
         conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=Test;user=sa;password=sasa");  
         stm = conn.createStatement();  
         boolean ret = stm.execute("select * from stuinfo");  
         if(ret){  
             rs = stm.getResultSet();  
             while(rs.next()){  
                 System.out.println("姓名:"+rs.getString("stuName")+"t年龄:"+rs.getString("stuScore"));  
             }  
         }  
         ret = stm.execute("update stuinfo set stuScore=62 where stuname='张三'");  
         int count = stm.getUpdateCount();  
         if(!ret){  
             System.out.println(count+"条数据修改成功!");  
         }  
    } catch (ClassNotFoundException e) {  
         e.printStackTrace();  
    } catch (SQLException e) {  
         e.printStackTrace();  
    }    
 }
2、int executeUpdate(String sql)

执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)。

返回值是更新的记录数量。0是没有更新,大于0是更新数量。

3、ResultSet executeQuery(String sql)

执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。

【execute是executeUpdate与executeQuery的综合。】

三、使用UUID生成SM4密钥

  • UUID.randomUUID().toString()是javaJDK提供的一个自动生成主键的方法。UUID 是指通用唯一识别码(Universally Unique Identifier)。
  • SM4密钥长度为16个字节。

使用UUID生成SM4密钥的代码如下:

UUID.randomUUID().toString().replace("-", "").toLowerCase().substring(0, 16)

四、SM2加密密文byte[]与String转换问题

SM2使用公钥加密后,生成byte[]类型的密文,转换为String类型并不能直接用过toString()方法,应该使用Base64编码后转为String,具体代码如下:

    byte[] encryptKey = new byte[100000];
    String encKey = "";
    try {
        encryptKey = SM2Utils.encrypt(Base64.decode(DataConstant.PUBKS.getBytes()), sm4.getSecretKey().getBytes());
        encKey = new String(Base64.encode(encryptKey));
        System.out.println("SM4加密后密钥:"+encKey);
    } catch (IOException e) {
        e.printStackTrace();
    }

解密时也应先使用Base64解码后,再使用SM2的私钥解密。

    String decKey = new String(SM2Utils.decrypt(Base64.decode(prikS.getBytes()), Base64.decode(encKey.getBytes())));

五、解析XML格式的字符串

需求为解密文件内容后,将数据封装为指定格式。

String xmlDoc=“31231415425072309002018-09-12 00:00:00.02018-09-12 00:00:00.02018-09-12 00:00:00.02018-09-12 00:00:00.011112018-09-12 00:00:00.012356内科11231胸内科12414312313陈XX22018-09-12 00:00:00.02018-09-12 00:00:00.0216.002018-09-12 00:00:00.0
” public String xmlElements(String xmlDoc) { StringBuffer datastr = null; //删除字符串中的换行符 if (xmlDoc!=null && !xmlDoc.equals("")) { Pattern p = Pattern.compile("r|n"); Matcher m = p.matcher(xmlDoc); xmlDoc = m.replaceAll(""); } StringReader read = new StringReader(xmlDoc); //创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入 InputSource source = new InputSource(read); //创建一个新的SAXBuilder SAXBuilder sb = new SAXBuilder(); try { //通过输入源构造一个Document Document doc = sb.build(source); //取的根元素 Element root = doc.getRootElement(); //得到根元素所有子元素的集合 List recordList = root.getChildren(); //获得XML中的命名空间(XML中未定义可不写) Namespace ns = root.getNamespace(); datastr =new StringBuffer(); for(int i=0;i标签 List childElement = et.getChildren(); //遍历中子元素 for (int j = 0; j

推荐阅读更多精彩内容

  • python与数据库的交互
    常用关系型数据库: 实际的生产任务中,数据几乎全部存在与数据库中,因此,与数据库的交互成为一件难以避免的事情。常见...
    小姐姐吖_6271阅读 47评论 0赞 2
  • 惊呆了!不改一行 Java 代码竟然就能轻松解决敏感信息加解密|原创
    来自公众号:程序通事作者:楼下小黑哥 出于安全考虑,现需要将数据库的中敏感信息加密存储到数据库中,但是正常业务交互...
    夜空_2cd3阅读 811评论 0赞 18
  • 数据分析—pandas 如何实现多条件修改数据
    【问题】数据集中的性别列,出现男性,想要将男性改为男,如下所示: 【解决方法一】切分字符串 【解决方法二】自定义函...
    Cherich_sun阅读 84评论 0赞 3
  • 这些Mybatis-Plus的使用小技巧,你应该知道的!
    最近在用 Mybatis-Plus,嗯,真香!!!今天就来说说 Mybatis-Plus 的那些使用技巧 1、条件...
    熬夜_不_加班阅读 435评论 1赞 14
  • JS 数据类型的转换和类型的判断
    变量类型的判断 1.JS中常见的数据类型分为基本类型(7种):string、boolean、number、unde...
    抽疯的稻草绳阅读 178评论 0赞 2
评论0
1赞
赞赏
下载App
{"dataManager":"[]","props":{"isServer":true,"initialState":{"global":{"done":false,"artFromType":null,"fontType":"black","modal":{"ContributeModal":false,"RewardListModal":false,"PayModal":false,"CollectionModal":false,"LikeListModal":false,"ReportModal":false,"QRCodeShareModal":false,"BookCatalogModal":false,"RewardModal":false},"ua":{"value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36","isIE11":false,"earlyIE":null,"chrome":"58.0","firefox":null,"safari":null,"isMac":false},"$diamondRate":{"displayable":false,"rate":0},"readMode":"day","locale":"zh-CN","seoList":[{"comments_count":0,"public_abbr":"常用关系型数据库: 实际的生产任务中,数据几乎全部存在与数据库中,因此,与数据库的交互成为一件难以避免的事情。常见...","share_image_url":"","slug":"cd59d677f39a","user":{"id":25361621,"nickname":"小姐姐吖_6271","slug":"9eeaa0a7d671","avatar":"https://upload.jianshu.io/users/upload_avatars/25361621/0575042f-0b60-46f0-a428-6642047b9656"},"likes_count":2,"title":"python与数据库的交互","id":81541902,"views_count":47},{"comments_count":0,"public_abbr":"来自公众号:程序通事作者:楼下小黑哥 出于安全考虑,现需要将数据库的中敏感信息加密存储到数据库中,但是正常业务交互...","share_image_url":"https://upload-images.jianshu.io/upload_images/19895418-dc8eae0ade4f17e2","slug":"def8172f4fb8","user":{"id":24117250,"nickname":"夜空_2cd3","slug":"64f062dc305f","avatar":"https://upload.jianshu.io/users/upload_avatars/24117250/dbb3ecc6-9b8e-4e72-bdb0-ceebdffc10d0"},"likes_count":18,"title":"惊呆了!不改一行 Java 代码竟然就能轻松解决敏感信息加解密|原创","id":78267843,"views_count":811},{"comments_count":0,"public_abbr":"【问题】数据集中的性别列,出现男性,想要将男性改为男,如下所示: 【解决方法一】切分字符串 【解决方法二】自定义函...","share_image_url":"https://upload-images.jianshu.io/upload_images/11693390-5107e870b2100e5b.png","slug":"8b94ad55ea7c","user":{"id":11693390,"nickname":"Cherich_sun","slug":"be49df089cbb","avatar":"https://upload.jianshu.io/users/upload_avatars/11693390/409fd716-603c-4a29-98d5-a00e11d521e0.jpg"},"likes_count":3,"title":"数据分析—pandas 如何实现多条件修改数据","id":82305255,"views_count":84},{"comments_count":1,"public_abbr":"最近在用 Mybatis-Plus,嗯,真香!!!今天就来说说 Mybatis-Plus 的那些使用技巧 1、条件...","share_image_url":"","slug":"03ff95f0aad5","user":{"id":24613101,"nickname":"熬夜_不_加班","slug":"9147dde5f07d","avatar":"https://upload.jianshu.io/users/upload_avatars/24613101/4907c9c5-8ed9-40e1-8f1c-4b05548f6534.jpg"},"likes_count":14,"title":"这些Mybatis-Plus的使用小技巧,你应该知道的!","id":78828432,"views_count":435},{"comments_count":0,"public_abbr":"变量类型的判断 1.JS中常见的数据类型分为基本类型(7种):string、boolean、number、unde...","share_image_url":"","slug":"9010297411ac","user":{"id":20277786,"nickname":"抽疯的稻草绳","slug":"95c62ae6ab0c","avatar":"https://upload.jianshu.io/users/upload_avatars/20277786/54995920-c73a-46fc-be26-61de7dbcad80.jpg"},"likes_count":2,"title":"JS 数据类型的转换和类型的判断","id":78366632,"views_count":178}]},"note":{"data":{"is_author":false,"last_updated_at":1537169423,"public_title":"【数据采集】关于接口中遇到的问题","purchased":false,"liked_note":false,"comments_count":0,"free_content":"u003ch4u003e一、连接SQL Server数据库u003c/h4u003enu003culu003enu003cliu003e连接sql Server数据库需要导入sqljdbc.jar包。u003c/liu003enu003cliu003e使用com.microsoft.sqlserver.jdbc.SQLServerDriver驱动。u003c/liu003enu003cliu003e连接数据库url为jdbc:sqlserver:localhost:1433;DatabaseName=studentu003c/liu003enu003c/ulu003enu003ch4u003e二、对JDBC执行结果的遍历与判断u003c/h4u003enu003cpu003e--------参考 u003ca href="https://blog.csdn.net/wangqing84411433/article/details/69056289" target="_blank" rel="nofollow"u003eexecute、executeUpdate、executeQuery三者的区别(及返回值)u003c/au003eu003c/pu003enu003ch6u003e1、boolean execute(String sql)u003c/h6u003enu003cpu003e允许执行查询语句、更新语句、DDL语句。u003c/pu003enu003cpu003e返回值为true时,表示执行的是查询语句,可以通过getResultSet方法获取结果;返回值为false时,执行的是更新语句或DDL语句,getUpdateCount方法获取更新的记录数量。u003c/pu003enu003cpreu003eu003ccodeu003epublic static void main(String[] args) { n Connection conn = null; n Statement stm = null; n ResultSet rs = null; n try { n Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); n conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=Test;user=sa;password=sasa"); n stm = conn.createStatement(); n boolean ret = stm.execute("select * from stuinfo"); n if(ret){ n rs = stm.getResultSet(); n while(rs.next()){ n System.out.println("姓名:"+rs.getString("stuName")+"\t年龄:"+rs.getString("stuScore")); n } n } n ret = stm.execute("update stuinfo set stuScore=62 where stuname='张三'"); n int count = stm.getUpdateCount(); n if(!ret){ n System.out.println(count+"条数据修改成功!"); n } n } catch (ClassNotFoundException e) { n e.printStackTrace(); n } catch (SQLException e) { n e.printStackTrace(); n } n }nu003c/codeu003eu003c/preu003enu003ch6u003e2、int executeUpdate(String sql)u003c/h6u003enu003cpu003e执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)。u003c/pu003enu003cpu003e返回值是更新的记录数量。0是没有更新,大于0是更新数量。u003c/pu003enu003ch6u003e3、ResultSet executeQuery(String sql)u003c/h6u003enu003cpu003e执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。u003c/pu003enu003ch5u003e【execute是executeUpdate与executeQuery的综合。】u003c/h5u003enu003ch4u003e三、使用UUID生成SM4密钥u003c/h4u003enu003culu003enu003cliu003enu003cstrongu003eUUID.randomUUID().toString()u003c/strongu003e是javaJDK提供的一个自动生成主键的方法。UUID 是指通用唯一识别码(Universally Unique Identifier)。u003c/liu003enu003cliu003enu003cstrongu003eSM4密钥长度u003c/strongu003e为16个字节。u003c/liu003enu003c/ulu003enu003cpu003e使用UUID生成SM4密钥的代码如下:u003c/pu003enu003cpreu003eu003ccodeu003eUUID.randomUUID().toString().replace("-", "").toLowerCase().substring(0, 16)nu003c/codeu003eu003c/preu003enu003ch4u003e四、SM2加密密文byte[]与String转换问题u003c/h4u003enu003cpu003eSM2使用公钥加密后,生成byte[]类型的密文,转换为String类型u003cstrongu003e并不能u003c/strongu003e直接用过toString()方法,u003cstrongu003e应该使用Base64编码后转为Stringu003c/strongu003e,具体代码如下:u003c/pu003enu003cpreu003eu003ccodeu003e byte[] encryptKey = new byte[100000];n String encKey = "";n try {n encryptKey = SM2Utils.encrypt(Base64.decode(DataConstant.PUBKS.getBytes()), sm4.getSecretKey().getBytes());n encKey = new String(Base64.encode(encryptKey));n System.out.println("SM4加密后密钥:"+encKey);n } catch (IOException e) {n e.printStackTrace();n }nu003c/codeu003eu003c/preu003enu003cpu003e解密时也应先使用Base64解码后,再使用SM2的私钥解密。u003c/pu003enu003cpreu003eu003ccodeu003e String decKey = new String(SM2Utils.decrypt(Base64.decode(prikS.getBytes()), Base64.decode(encKey.getBytes())));nnu003c/codeu003eu003c/preu003enu003ch4u003e五、解析XML格式的字符串u003c/h4u003enu003cpu003e需求为解密文件内容后,将数据封装为指定格式。u003c/pu003enu003cpreu003eu003ccodeu003eString xmlDoc=“u0026lt;tableu0026gt;u0026lt;recordu0026gt;u0026lt;numsourceidu0026gt;31231415u0026lt;/numsourceidu0026gt;u0026lt;hospital_codeu0026gt;42507230900u0026lt;/hospital_codeu0026gt;u0026lt;update_timeu0026gt;2018-09-12 00:00:00.0u0026lt;/update_timeu0026gt;u0026lt;create_timeu0026gt;2018-09-12 00:00:00.0u0026lt;/create_timeu0026gt;u0026lt;release_timeu0026gt;2018-09-12 00:00:00.0u0026lt;/release_timeu0026gt;u0026lt;end_timeu0026gt;2018-09-12 00:00:00.0u0026lt;/end_timeu0026gt;u0026lt;ordernumtypeu0026gt;1u0026lt;/ordernumtypeu0026gt;u0026lt;is_specialu0026gt;1u0026lt;/is_specialu0026gt;u0026lt;source_statusu0026gt;1u0026lt;/source_statusu0026gt;u0026lt;is_advantageu0026gt;1u0026lt;/is_advantageu0026gt;u0026lt;advantage_abort_timeu0026gt;2018-09-12 00:00:00.0u0026lt;/advantage_abort_timeu0026gt;u0026lt;is_temporaryu0026gt;1u0026lt;/is_temporaryu0026gt;u0026lt;dept1idu0026gt;2356u0026lt;/dept1idu0026gt;u0026lt;dept1nameu0026gt;内科u0026lt;/dept1nameu0026gt;u0026lt;dept2idu0026gt;11231u0026lt;/dept2idu0026gt;u0026lt;dept2nameu0026gt;胸内科u0026lt;/dept2nameu0026gt;u0026lt;dept_shenkang_idu0026gt;12414u0026lt;/dept_shenkang_idu0026gt;u0026lt;doctoridu0026gt;312313u0026lt;/doctoridu0026gt;u0026lt;doctor_nameu0026gt;陈XXu0026lt;/doctor_nameu0026gt;u0026lt;doctor_levelu0026gt;2u0026lt;/doctor_levelu0026gt;u0026lt;start_dateu0026gt;2018-09-12 00:00:00.0u0026lt;/start_dateu0026gt;u0026lt;end_dateu0026gt;2018-09-12 00:00:00.0u0026lt;/end_dateu0026gt;u0026lt;schedule_statusu0026gt;2u0026lt;/schedule_statusu0026gt;u0026lt;is_changediagtagu0026gt;1u0026lt;/is_changediagtagu0026gt;u0026lt;visit_costu0026gt;6.00u0026lt;/visit_costu0026gt;u0026lt;schedule_update_timeu0026gt;2018-09-12 00:00:00.0u0026lt;/schedule_update_timeu0026gt;u0026lt;/recordu0026gt;u0026lt;/tableu0026gt;”nnpublic String xmlElements(String xmlDoc) {nn StringBuffer datastr = null;n //删除字符串中的换行符n if (xmlDoc!=null u0026amp;u0026amp; !xmlDoc.equals("")) {n Pattern p = Pattern.compile("\r|\n");n Matcher m = p.matcher(xmlDoc);n xmlDoc = m.replaceAll("");n }nn StringReader read = new StringReader(xmlDoc);n //创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入n InputSource source = new InputSource(read);n //创建一个新的SAXBuildern SAXBuilder sb = new SAXBuilder();n try {n //通过输入源构造一个Documentn Document doc = sb.build(source);nn //取的根元素u0026lt;tableu0026gt;n Element root = doc.getRootElement();nn //得到根元素所有子元素的集合u0026lt;recordu0026gt;n List recordList = root.getChildren();nn //获得XML中的命名空间(XML中未定义可不写)n Namespace ns = root.getNamespace();nn datastr =new StringBuffer();n n for(int i=0;iu0026lt;recordList.size();i++){n Element et = (Element) recordList.get(i);//循环依次得到子元素n //依次获取单个u0026lt;recordu0026gt;标签n List childElement = et.getChildren();n //遍历u0026lt;recordu0026gt;中子元素n for (int j = 0; j u0026lt; childElement.size(); j++) {n Element child = (Element)childElement.get(j);n String str = child.getText();n if(j != childElement.size()-1){n str += "!@!";n }n datastr.append(str);n }n datastr.append("^u0026amp;^");n n }n System.out.println(datastr);n n } catch (JDOMException e) {n // TODO 自动生成 catch 块n e.printStackTrace();n } catch (IOException e) {n // TODO 自动生成 catch 块n e.printStackTrace();n } n return datastr.toString();n }nn/*n输出结果:n31231415!@!42507230900!@!2018-09-12 00:00:00.0!@!2018-09-12 00:00:00.0!@!2018-09-12 00:00:00.0!@!2018-09-12 00:00:00.0!@!1!@!1!@!1!@!1!@!2018-09-12 00:00:00.0!@!1!@!2356!@!内科!@!11231!@!胸内科!@!12414!@!312313!@!陈XX!@!2!@!2018-09-12 00:00:00.0!@!2018-09-12 00:00:00.0!@!2!@!1!@!6.00!@!2018-09-12 00:00:00.0^u0026amp;^n*/nu003c/codeu003eu003c/preu003en","voted_down":false,"rewardable":true,"show_paid_comment_tips":false,"share_image_url":"https://upload.jianshu.io/users/upload_avatars/4731173/05c5be18-0353-497b-89c9-a8d3919376c3.jpg","slug":"647b7a7f5b87","user":{"liked_by_user":false,"following_count":20,"gender":0,"avatar_widget":null,"slug":"c812fe9aca81","intro":"","likes_count":55,"nickname":"shallwego_","badges":[],"total_fp_amount":"3276696246172891925","wordage":56448,"avatar":"https://upload.jianshu.io/users/upload_avatars/4731173/05c5be18-0353-497b-89c9-a8d3919376c3.jpg","id":4731173,"liked_user":false},"likes_count":0,"paid_type":"free","show_ads":true,"paid_content_accessible":false,"total_fp_amount":"0","trial_open":false,"reprintable":true,"bookmarked":false,"wordage":473,"featured_comments_count":0,"downvotes_count":0,"wangxin_trial_open":null,"guideShow":{"new_money_time_reward_type":5,"audit_user_nickname_spliter":0,"pc_note_bottom_btn":1,"pc_like_author_guidance":0,"audit_user_background_image_spliter":0,"audit_note_spliter":0,"launch_tab":1,"include_post":0,"pc_login_guidance":1,"audit_comment_spliter":1,"pc_note_bottom_qrcode":1,"audit_user_avatar_spliter":0,"flow_ad_check_detail_button_style":0,"audit_collection_spliter":0,"pc_top_lottery_guidance":1,"subscription_guide_entry":1,"creation_muti_function_on":1,"audit_user_spliter":1,"pc_note_popup":0},"commentable":true,"total_rewards_count":0,"id":33950756,"notebook":{"name":""},"description":"一、连接SQL Server数据库 连接sql Server数据库需要导入sqljdbc.jar包。 使用com.microsoft.sqlserver.jdbc.SQLSe...","first_shared_at":1537169423,"views_count":221,"notebook_id":29525319},"baseList":{"likeList":[],"rewardList":[]},"status":"success","statusCode":0},"user":{"isLogin":false,"userInfo":{}},"comments":{"list":[],"featuredList":[]}},"initialProps":{"pageProps":{"query":{"slug":"647b7a7f5b87"}},"localeData":{"common":{"jianshu":"简书","diamond":"简书钻","totalAssets":"总资产{num}","diamondValue":" (约{num}元)","login":"登录","logout":"注销","register":"注册","on":"开","off":"关","follow":"关注","followBook":"关注连载","following":"已关注","cancelFollow":"取消关注","publish":"发布","wordage":"字数","audio":"音频","read":"阅读","reward":"赞赏","zan":"赞","comment":"评论","expand":"展开","prevPage":"上一页","nextPage":"下一页","floor":"楼","confirm":"确定","delete":"删除","report":"举报","fontSong":"宋体","fontBlack":"黑体","chs":"简体","cht":"繁体","jianChat":"简信","postRequest":"投稿请求","likeAndZan":"喜欢和赞","rewardAndPay":"赞赏和付费","home":"我的主页","markedNotes":"收藏的文章","likedNotes":"喜欢的文章","paidThings":"已购内容","wallet":"我的钱包","setting":"设置","feedback":"帮助与反馈","loading":"加载中...","needLogin":"请登录后进行操作","trialing":"文章正在审核中...","reprintTip":"禁止转载,如需转载请通过简信或评论联系作者。"},"error":{"rewardSelf":"无法打赏自己的文章哟~"},"message":{"paidNoteTip":"付费购买后才可以参与评论哦","CommentDisableTip":"作者关闭了评论功能","contentCanNotEmptyTip":"回复内容不能为空","addComment":"评论发布成功","deleteComment":"评论删除成功","likeComment":"评论点赞成功","setReadMode":"阅读模式设置成功","setFontType":"字体设置成功","setLocale":"显示语言设置成功","follow":"关注成功","cancelFollow":"取消关注成功","copySuccess":"复制代码成功"},"header":{"homePage":"首页","download":"下载APP","discover":"发现","message":"消息","reward":"赞赏支持","editNote":"编辑文章","writeNote":"写文章"},"note":{},"noteMeta":{"lastModified":"最后编辑于 ","wordage":"字数 {num}","viewsCount":"阅读 {num}"},"divider":{"selfText":"以下内容为付费内容,定价 ¥{price}","paidText":"已付费,可查看以下内容","notPaidText":"还有 {percent} 的精彩内容","modify":"点击修改"},"paidPanel":{"buyNote":"支付 ¥{price} 继续阅读","buyBook":"立即拿下 ¥{price}","freeTitle":"该作品为付费连载","freeText":"购买即可永久获取连载内的所有内容,包括将来更新的内容","paidTitle":"还没看够?拿下整部连载!","paidText":"永久获得连载内的所有内容, 包括将来更新的内容"},"book":{"last":"已是最后","lookCatalog":"查看连载目录","header":"文章来自以下连载"},"action":{"like":"{num}人点赞","collection":"收入专题","report":"举报文章"},"comment":{"allComments":"全部评论","featuredComments":"精彩评论","closed":"评论已关闭","close":"关闭评论","open":"打开评论","desc":"按时间倒序","asc":"按时间正序","disableText1":"用户已关闭评论,","disableText2":"与Ta简信交流","placeholder":"写下你的评论...","publish":"发表","create":" 添加新评论","reply":" 回复","restComments":"还有{num}条评论,","expandImage":"展开剩余{num}张图","deleteText":"确定要删除评论么?"},"collection":{"title":"被以下专题收入,发现更多相似内容","putToMyCollection":"收入我的专题"},"seoList":{"title":"推荐阅读","more":"更多精彩内容"},"sideList":{"title":"推荐阅读"},"wxShareModal":{"desc":"打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮"},"bookChapterModal":{"try":"试读","toggle":"切换顺序"},"collectionModal":{"title":"收入到我管理的专题","search":"搜索我管理的专题","newCollection":"新建专题","create":"创建","nothingFound":"未找到相关专题","loadMore":"展开查看更多"},"contributeModal":{"search":"搜索专题投稿","newCollection":"新建专题","addNewOne":"去新建一个","nothingFound":"未找到相关专题","loadMore":"展开查看更多","managed":"我管理的专题","recommend":"推荐专题"},"QRCodeShow":{"payTitle":"微信扫码支付","payText":"支付金额"},"rewardModal":{"title":"给作者送糖","custom":"自定义","placeholder":"给Ta留言...","choose":"选择支付方式","balance":"简书余额","tooltip":"网站该功能暂时下线,如需使用,请到简书App操作","confirm":"确认支付","success":"赞赏成功"},"payModal":{"payBook":"购买连载","payNote":"购买文章","promotion":"优惠券","promotionFetching":"优惠券获取中...","noPromotion":"无可用优惠券","promotionNum":"{num}张可用","noUsePromotion":"不使用优惠券","validPromotion":"可用优惠券","invalidPromotion":"不可用优惠券","total":"支付总额","tip1":"· 你将购买的商品为虚拟内容服务,购买后不支持退订、转让、退换,请斟酌确认。","tip2":"· 购买后可在“已购内容”中查看和使用。","success":"购买成功"},"reportModal":{"ad":"广告及垃圾信息","plagiarism":"抄袭或未授权转载","placeholder":"写下举报的详情情况(选填)","success":"举报成功"},"guidModal":{"modalAText":"相似文章推荐","subText":"下载简书APP,浏览更多相似文章","btnAText":"先不下载,下次再说","followOkText":"关注作者成功!","followTextTip":"下载简书APP,作者更多精彩内容更新及时提醒!","followBtn":"下次再说","downloadTipText":"更多精彩内容下载简书APP","footerDownLoadText":"下载简书APP","modabTitle":"免费送你2次抽奖机会","modalbTip":"你有很大概率抽取AirPods Pro","modalbFooterTip":"下载简书APP,天天参与抽大奖","modalReward":"抽奖","scanQrtip":"扫码下载简书APP","downloadAppText":"下载简书APP,随时随地发现和创作内容","redText":"阅读","likesText":"赞","downLoadLeft":"下载App"}},"currentLocale":"zh-CN","asPath":"/p/647b7a7f5b87"}},"page":"/p/[slug]","query":{"slug":"647b7a7f5b87"},"buildId":"ZJP8vj8XvQ-o-3nKSjb0s","assetPrefix":"https://cdn2.jianshu.io/shakespeare"}

文章来源于互联网:【数据采集】关于接口中遇到的问题

发表评论