正在显示
4 个修改的文件
包含
114 行增加
和
8 行删除
... | ... | @@ -11,6 +11,7 @@ |
11 | 11 | #include "dmpvectorlayerrenderer.h" |
12 | 12 | #include "dmpproviderregistry.h" |
13 | 13 | #include "libpq-fe.h" |
14 | +#include "clsUtil.h" | |
14 | 15 | |
15 | 16 | DmpVectorLayer::DmpVectorLayer(const std::string &path, |
16 | 17 | const std::string &baseName, |
... | ... | @@ -139,9 +140,11 @@ bool DmpVectorLayer::writejson(std::string& json) |
139 | 140 | } |
140 | 141 | //Display scale setting type="1" geometry="Point" alwaysShow="true" maxScale="0" maxScale="50000"> |
141 | 142 | char resultbuff[1000]; |
143 | + string json_source = this->source(); | |
144 | + DmapCore_30::clsUtil::ToJSONString(json_source); | |
142 | 145 | sprintf(resultbuff, |
143 | - R"({"workspace":"","type":"1","dbsourceid":"%s","data":"","schema":"%s","alias":"%s","name":"%s","id":"%s","filter":"%s","visible":"%s","tag":"","minScale":"%s","maxScale":"%s","geometry":"%s","alwaysShow":"%s")", | |
144 | - this->source().c_str(), | |
146 | + R"({"workspace":"","type":"1","dbsource":"%s","data":"","schema":"%s","alias":"%s","name":"%s","id":"%s","filter":"%s","visible":"%s","tag":"","minScale":"%s","maxScale":"%s","geometry":"%s","alwaysShow":"%s")", | |
147 | + json_source.c_str(), | |
145 | 148 | this->schema().c_str(), |
146 | 149 | this->title().c_str(), |
147 | 150 | this->name().c_str(), | ... | ... |
... | ... | @@ -587,6 +587,104 @@ namespace DmapCore_30 |
587 | 587 | *bValue = false; |
588 | 588 | } |
589 | 589 | |
590 | + | |
591 | + void clsUtil::ToXMLString(std::string &s) | |
592 | + { | |
593 | + const char *str1 = s.c_str(); | |
594 | + if (strstr(str1, "&")) | |
595 | + { | |
596 | + s = clsUtil::CharReplace(s, "&", "&"); | |
597 | + str1 = s.c_str(); | |
598 | + } | |
599 | + if (strstr(str1, "<")) | |
600 | + { | |
601 | + s = clsUtil::CharReplace(s, "<", "<"); | |
602 | + str1 = s.c_str(); | |
603 | + } | |
604 | + if (strstr(str1, ">")) | |
605 | + { | |
606 | + s = clsUtil::CharReplace(s, ">", ">"); | |
607 | + str1 = s.c_str(); | |
608 | + } | |
609 | + if (strstr(str1, "\"")) | |
610 | + { | |
611 | + s = clsUtil::CharReplace(s, "\"", """); | |
612 | + str1 = s.c_str(); | |
613 | + } | |
614 | + if (strstr(str1, "\r")) | |
615 | + { | |
616 | + s = clsUtil::CharReplace(s, "\r", ""); | |
617 | + str1 = s.c_str(); | |
618 | + } | |
619 | + if (strstr(str1, "\n")) | |
620 | + { | |
621 | + s = clsUtil::CharReplace(s, "\n", ""); | |
622 | + str1 = s.c_str(); | |
623 | + } | |
624 | + if (strstr(str1, "'")) | |
625 | + { | |
626 | + s = clsUtil::CharReplace(s, "'", "'"); | |
627 | + //str1=s.c_str(); | |
628 | + } | |
629 | + return; | |
630 | + } | |
631 | + | |
632 | + void clsUtil::ToJSONString(std::string &s) | |
633 | + { | |
634 | + const char *str1 = s.c_str(); | |
635 | + if (strstr(str1, "\\")) | |
636 | + { | |
637 | + s = clsUtil::CharReplace(s, "\\", "\\\\"); | |
638 | + str1 = s.c_str(); | |
639 | + } | |
640 | + if (strstr(str1, "/")) | |
641 | + { | |
642 | + s = clsUtil::CharReplace(s, "/", "\\/"); | |
643 | + str1 = s.c_str(); | |
644 | + } | |
645 | + if (strstr(str1, "\"")) | |
646 | + { | |
647 | + s = clsUtil::CharReplace(s, "\"", "\\\""); | |
648 | + str1 = s.c_str(); | |
649 | + } | |
650 | + if (strstr(str1, "\\r")) | |
651 | + { | |
652 | + s = clsUtil::CharReplace(s, "\\r", ""); | |
653 | + str1 = s.c_str(); | |
654 | + } | |
655 | + if (strstr(str1, "\\n")) | |
656 | + { | |
657 | + s = clsUtil::CharReplace(s, "\\n", ""); | |
658 | + str1 = s.c_str(); | |
659 | + } | |
660 | + if (strstr(str1, "\r")) | |
661 | + { | |
662 | + s = clsUtil::CharReplace(s, "\r", ""); | |
663 | + str1 = s.c_str(); | |
664 | + } | |
665 | + if (strstr(str1, "\n")) | |
666 | + { | |
667 | + s = clsUtil::CharReplace(s, "\n", ""); | |
668 | + str1 = s.c_str(); | |
669 | + } | |
670 | + if (strstr(str1, "\t")) | |
671 | + { | |
672 | + s = clsUtil::CharReplace(s, "'", "\\t"); | |
673 | + //str1=s.c_str(); | |
674 | + } | |
675 | + return; | |
676 | + } | |
677 | + | |
678 | + string clsUtil::CharReplace(string strsrc, string strfind, string strrep) | |
679 | + { | |
680 | + for(string::size_type pos(0); pos!=string::npos; pos+=strrep.length()) { | |
681 | + if( (pos=strsrc.find(strfind,pos))!=string::npos ) | |
682 | + strsrc.replace(pos,strfind.length(),strrep); | |
683 | + else break; | |
684 | + } | |
685 | + return strsrc; | |
686 | + } | |
687 | + | |
590 | 688 | std::string clsUtil::fmt(char* fmt, ...) |
591 | 689 | { |
592 | 690 | va_list argptr; | ... | ... |
... | ... | @@ -73,7 +73,11 @@ else { to[index]->Release(); to[index] = from; }\ |
73 | 73 | |
74 | 74 | static void GetFiles(string path, string exd, vector<string> & files); |
75 | 75 | static int ParseStringTok(char * sz, char toK, char ** szPtr, int maxPtr); |
76 | - | |
76 | + | |
77 | + static void ToJSONString(std::string &s); | |
78 | + static void ToXMLString(std::string &s); | |
79 | + static string CharReplace(string strsrc, string strfind, string strrep); | |
80 | + | |
77 | 81 | static std::string fmt(char *, ...); |
78 | 82 | static std::string fmt(const char*, ...); |
79 | 83 | static void ValueString(string * s, bool* bValue); | ... | ... |
... | ... | @@ -22,10 +22,9 @@ namespace DmpMapping |
22 | 22 | bool loadService(const DmpServerContext &context, ProjectMap& vectorMappingProjects) |
23 | 23 | { |
24 | 24 | const char *data = (char *)(context.request()->GetData()); |
25 | - std::string name = context.serverProject()->name(); | |
26 | - std::string title = context.serverProject()->title(); | |
25 | + | |
27 | 26 | |
28 | - if(data== nullptr || *data == '\0') | |
27 | + if(data== nullptr || *data == '\0' || context.request()->method() != DmpServerRequest::Method::POST_METHOD ) | |
29 | 28 | { |
30 | 29 | LOGGER_ERROR("post 参数错误"); |
31 | 30 | context.response()->writeJson("{\"status\":\"false\",\"message\":\"post 参数错误!\"}"); |
... | ... | @@ -35,12 +34,14 @@ namespace DmpMapping |
35 | 34 | if(!context.serverProject()) |
36 | 35 | { |
37 | 36 | LOGGER_ERROR("加载服务信息失败,服务名称是否错误"); |
38 | - context.response()->writeJson("{\"status\":\"false\",\"message\":\"加载服务信息失败,服务名称是否错误!\"}"); | |
37 | + context.response()->writeJson("{\"status\":\"false\",\"message\":\"加载服务信息失败,服务名称错误!\"}"); | |
39 | 38 | return false; |
40 | 39 | } |
41 | 40 | |
42 | 41 | try |
43 | 42 | { |
43 | + std::string name = context.serverProject()->name(); | |
44 | + std::string title = context.serverProject()->title(); | |
44 | 45 | std::stringstream stream(data); |
45 | 46 | boost::property_tree::ptree pt; |
46 | 47 | boost::property_tree::read_json(stream, pt); |
... | ... | @@ -105,7 +106,7 @@ namespace DmpMapping |
105 | 106 | |
106 | 107 | json.append("]}"); |
107 | 108 | |
108 | - context.response()->write( project->WriteJson()); | |
109 | + context.response()->writeJson( json); | |
109 | 110 | return true; |
110 | 111 | } |
111 | 112 | else | ... | ... |
请
注册
或
登录
后发表评论