是否有用于将JSON模式转换为python类定义的python库,类似于jsonschema2pojo - https://github.com/joelittlejohn/jsonschema2pojo - for Java?
我目前有一个underscore.js模板,我也想使用角度,仍然可以使用下划线.我想知道是否可以使用指令更改特定范围的插值开始和结束符号,如下所示:
angular.directive('underscoreTemplate', function ($parse, $compile, $interpolateProvider, $interpolate) {
return {
restrict: "E",
replace: false,
link: function (scope, element, attrs) {
$interpolateProvider.startSymbol("<%=").endSymbol("%>");
var parsedExp = $interpolate(element.html());
// Then replace element contents with interpolated contents
}
}
})
Run Code Online (Sandbox Code Playgroud)
但这会吐出错误
错误:未知提供者:$ interpolateProviderProvider < - $ interpolateProvider < - underscoreTemplateDirective
是$interpolateProvider仅适用于模块配置?会更好的解决方案是简单地使用字符串替换改变<%=到{{和%>到}}?
此外,我注意到element.html()逃脱了<进入<%=和>进入%>.有没有办法防止这种自动转义?
在任何标准库中都有字符类(alpha,numeric,alphanumeric)的定义?我正在检查字符串是否只包含字母数字字符或冒号:
StringUtils.containsOnly(input, ALPHA_NUMERIC + ":");
Run Code Online (Sandbox Code Playgroud)
我自己可以定义ALPHA_NUMERIC,但似乎常见的字符类将在标准库中定义,尽管我无法找到定义.
编辑:我确实考虑过正则表达式,但对于我的特定用例,执行时间很重要,简单的扫描更有效.
编辑:以下是测试结果,使用Regex,CharMatcher和简单扫描(对每个测试使用相同的有效/无效输入字符串集):
有效输入字符串:
CharMatcher,Num Runs:1000000,Valid Strings:true,Time(ms):1200
Regex,Num Runs:1000000,Valid Strings:true,Time(ms):909
Scan,Num Runs:1000000,Valid Strings:true,Time(ms):96
输入字符串无效:
CharMatcher,Num Runs:1000000,Valid Strings:false,Time(ms):277
Regex,Num Runs:1000000,Valid Strings:false,Time(ms):253
Scan,Num Runs:1000000,Valid Strings:false,Time(ms):36
以下是执行扫描的代码:
public boolean matches(String input) {
for(int i=0; i<input.length(); i++) {
char c = input.charAt(i);
if( !Character.isLetterOrDigit(c) && c != ':') {
return false;
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
编辑:我重新编译为一个独立的程序(我正在通过eclipse运行):
CharMatcherTester,Num Runs:1000000,Valid Strings:true,Time(ms):418
RegexTester,Num Runs:1000000,Valid Strings:true,Time(ms):812
ScanTester,Num Runs:1000000,Valid Strings:true,Time(ms):88
CharMatcherTester,Num …