我只想将包含yaml的字符串转换为另一个字符串,该字符串包含使用Java的corrseponding转换后的json.
例如,我有这个yaml的内容
---
paper:
uuid: 8a8cbf60-e067-11e3-8b68-0800200c9a66
name: On formally undecidable propositions of Principia Mathematica and related systems I.
author: Kurt Gödel.
tags:
- tag:
uuid: 98fb0d90-e067-11e3-8b68-0800200c9a66
name: Mathematics
- tag:
uuid: 3f25f680-e068-11e3-8b68-0800200c9a66
name: Logic
Run Code Online (Sandbox Code Playgroud)
在名为yamlDoc的String中:
String yamlDoc = "---\npaper:\n uuid: 8a... etc...";
Run Code Online (Sandbox Code Playgroud)
我想要一些方法,可以将yaml String转换为另一个带有相应json的String,即下面的代码
String yamlDoc = "---\npaper:\n uuid: 8a... etc...";
String json = convertToJson(yamlDoc); // I want this method
System.out.println(json);
Run Code Online (Sandbox Code Playgroud)
应该打印:
{
"paper": {
"uuid": "8a8cbf60-e067-11e3-8b68-0800200c9a66",
"name": "On formally undecidable propositions of Principia Mathematica and related systems I.",
"author": …Run Code Online (Sandbox Code Playgroud) 我刚开始使用AngularJS,所以我不是专家.
我有一个div代表我的html视图的正确区域.在那个div我有一个控制器,即
<div class="rightContainer" ng-controller="rightContainerCtrl">...</div>
Run Code Online (Sandbox Code Playgroud)
在div中我有一个表,一个搜索区域等.该div中的每个区域都有自己的控制器,它看起来像这样:
<div class="rightContainer" ng-controller="rightContainerCtrl">
...
<div class="search" ng-controller="searchCtrl">...</div>
...
<div class="table" ng-controller="tableCtrl">...</div>
</div>
Run Code Online (Sandbox Code Playgroud)
例如,搜索区域有自己的控制器,它是rightContainerCtrl的子节点,因为它需要改变父节点中的某些内容(rightContainerCtrl),但是rightContainer div正在增长,现在它很大,并且包含几个嵌套控制器.
我认为使用这个嵌套控制器在这个上下文中是不好的,因为所有嵌套控制器共享父作用域,并不是所有控制器都需要访问所有父作用域变量,所有控制器都是rightContainerCtrl的"囚犯",所以它们是与其父控制器高度耦合.
它看起来像一个上帝对象反模式(在这种情况下是上帝控制器),所以我认为不是使用嵌套控制器我可以重构我的代码以消除rightContainerCtrl控制器并改为使用服务(如在外观设计模式中),然后,控制器将使用该服务,而不是共享范围变量.
但由于我不是AngularJs的专家,我不确定我是对的还是离开这个父控制器更好,也许我错过了什么,所以我的问题是
何时更好地使用嵌套控制器(嵌套范围)以及何时更好地在angularjs中使用服务?