将带有点符号的字符串转换为 JSON [英] Convert string with dot notation to JSON

查看:74
本文介绍了将带有点符号的字符串转换为 JSON的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

给定一个字符串作为点符号,我将如何从该字符串创建一个对象(检查已经存在的属性):例如

var obj = {};stringToObj('a.b', 'value1', obj);stringToObj('a.b.c', 'value2', obj);

会产生

<代码>{一个": {乙":{"_x": "value1",C": {_x":值2"}}}}

我看过这个问题这个 但似乎都不足以满足我的工作.>

有什么想法吗?

解决方案

您可以利用参考资料:

function stringToObj(path,value,obj) {var parts = path.split("."), part;while(part = part.shift()) {if( typeof obj[part] != "object") obj[part] = {};obj = obj[部分];//更新指针"}obj["_x"] = 值;}

Given a string as dot notation, how would I create an object from that string (checking for already existing properties): eg

var obj = {};
stringToObj('a.b', 'value1', obj);
stringToObj('a.b.c', 'value2', obj);

would produce

{
   "a": {
    "b": {
        "_x": "value1",
        "c": {
            "_x": "value2"
        }
    }
    }
 }

I've looked at this question and this one but neither seems to be sufficient for what Im doing.

Any thoughts?

解决方案

You can take advantage of references:

function stringToObj(path,value,obj) {
    var parts = path.split("."), part;
    while(part = parts.shift()) {
        if( typeof obj[part] != "object") obj[part] = {};
        obj = obj[part]; // update "pointer"
    }
    obj["_x"] = value;
}

这篇关于将带有点符号的字符串转换为 JSON的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆