大佬教程收集整理的这篇文章主要介绍了如何从 Typescript,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在查找 npm 包或创建自己的函数以从此类中的元素生成 Json 文件时遇到问题:
export class TranslatedfileElement {
private key: String
private hasChild: Boolean // True if vaule is empty,vaules not empty; false if value not empty,values is empty
private value?: String // One of them should be required,because if TranslatedfileElement have any childs,private values?: TranslatedfileElement[] // then value should be empty,if not,values should be empty
private isTranslated?: Boolean
public constructor() {
this.key = '',this.hasChild = false,this.value = '',this.values = null,this.isTranslated = false
}
public setTranslatefileElement(
_key: String,_value: String,_values: TranslatedfileElement[],_hasChild: Boolean,_isTranslated: Boolean
) {
this.key = _key
this.value = _value
this.values = _values
this.hasChild = _hasChild,this.isTranslated = _isTranslated
}
public setKey(_key: String) {
this.key = _key
}
[...] //Other get's and set's
}
我尝试过类似的方法,但它无法正常工作并且产生的问题比解决的还多:
private converter(elementsToJsON: TranslatedfileElement[],nestedLevel: number = 0): String {
let JsONResult = '{'
elementsToJsON.forEach((element) => {
JsONResult = JsONResult + '"' + element.getKey() + '" : '
if (element.getHasChild()) {
JsONResult = JsONResult +
this.converter(element.getValues(),nestedLevel + 2)
} else {
JsONResult = JsONResult + '"' + element.getValue() + '",'
}
})
JsONResult = JsONResult + '},'
JsONResult = JsON.parse(JsON.Stringify(JsONResult));
return JsONResult
}
有人知道好的 npm(未弃用)包可以做到这一点,或者有想法简单地解决它?
我建议添加一个方法,将该结构转换为与您想要的 json 具有相同结构的对象,并在如此创建的对象上调用 JSON.Stringify 。
class TranslatedFileElement {
...
public toJSON(){
return JSON.Stringify(this.toObject());
}
public toObject(){
let val:any=null;
if (this.hasChild){
const reducer = (acc:any,val:any) => ({...acc,...val});
if (this.values)
val = this.values.map((child:TranslatedFileElement)=>child.toObject()).reduce(reducer,{});
}else{
val = this.value;
}
return {[this.key]:val};
}
...
}
,
你可以做的只是调用
JSON.Stringify(elementsToJSON);
类属性将被转换为 JSON。
唯一的问题是如果您的数据结构不是树并且其中包含循环。
以上是大佬教程为你收集整理的如何从 Typescript全部内容,希望文章能够帮你解决如何从 Typescript所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。