Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как из строки получить обьект? (https://javascript.ru/forum/misc/39867-kak-iz-stroki-poluchit-obekt.html)

linklee 15.07.2013 10:25

Как из строки получить обьект?
 
Как превратить строку в обьект:
строку 'a.b.c.d' в обьект {a: {b: {c: 'd'}}} ?

skrudjmakdak 15.07.2013 10:35

для чего это??

можно так:
var str = '{"a": {"b": {"c": "d"}}}';
console.log(JSON.parse(str));

ruslan_mart 15.07.2013 10:57

function StringToObject(str)
{
    var a = '"}';
    str = str.split('.');
    for(var i=0; i<str.length; i++) a += '}';
    return JSON.parse('{"'+str.join('":{"')+a); 
}

console.log( StringToObject('a.b.c.d') );


Может, как-нибудь так :D

skrudjmakdak 15.07.2013 11:05

а еще можно так:
var str = 'a.b.c.d';
var obj;
if (str == 'a.b.c.d')
	obj = {a: {b: {c: 'd'}}};
console.log(obj);

:D

ОлегА 15.07.2013 11:17

function my_split(separator, str){
  var exp = {};
  arr = str.split(separator)

  if( arr.length > 1 ){
    first_val = arr[0];
    str = str.substr(first_val.length+separator.length);
    exp[ first_val ] = my_split(separator, str)
    return exp;
  } else {
    return str;
  }
}

str = 'a.b.c.d';

res = my_split('.', str);

linklee 15.07.2013 11:38

как оперативно ух ты...
что то не работает....
подключить что то надо?
задание такое тестовое... для этого надо =)
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Test 01</title>
<script type="text/javascript" >

function StringToObject(str){
var a = '"}';
str = str.split('.');
for(var i=0; i<str.length; i++) a += '}';
return JSON.parse('{"'+str.join('":{"')+a);
}
console.log( StringToObject('a.b.c.d') );</script>
</head>
<body >
<canvas id="canvas" width="300" height="300">
Canvas not supported.
</canvas>



</body></html>

ruslan_mart 15.07.2013 11:41

function StringToObject(str)
{
    var a = '"';
    str = str.split('.');
    for(var i=0; i<str.length; i++) a += '}';
    return JSON.parse('{"'+str.join('":{"')+a); 
}

console.log( StringToObject('a.b.c.d') );


Во.

linklee 15.07.2013 12:26

что то до сих пор не работает(
пишет :
Uncaught SyntaxError: Unexpected token }

skrudjmakdak 15.07.2013 12:29

скорей всего не хватает кавычки.. или лишняя

skrudjmakdak 15.07.2013 12:32

function StringToObject(str)
	{
		var a = '"';
		str = str.split('.');
		for(var i=0; i<str.length; i++) a += '}';
		console.log('{"'+str.join('":{"')+a); 
	}

console.log( StringToObject('a.b.c.d') );


посмотрите что выводит.. не хватает присвоения:
{"a":{"b":{"c":{"d"}}}}
должно быть хотя бы так:
{"a":{"b":{"c":{"d": 1}}}}


Часовой пояс GMT +3, время: 20:13.