Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.07.2013, 10:25
Аспирант
Отправить личное сообщение для linklee Посмотреть профиль Найти все сообщения от linklee
 
Регистрация: 15.07.2013
Сообщений: 49

Как из строки получить обьект?
Как превратить строку в обьект:
строку 'a.b.c.d' в обьект {a: {b: {c: 'd'}}} ?
Ответить с цитированием
  #2 (permalink)  
Старый 15.07.2013, 10:35
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

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

можно так:
var str = '{"a": {"b": {"c": "d"}}}';
console.log(JSON.parse(str));
Ответить с цитированием
  #3 (permalink)  
Старый 15.07.2013, 10:57
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

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') );


Может, как-нибудь так
Ответить с цитированием
  #4 (permalink)  
Старый 15.07.2013, 11:05
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

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

Ответить с цитированием
  #5 (permalink)  
Старый 15.07.2013, 11:17
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

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);
Ответить с цитированием
  #6 (permalink)  
Старый 15.07.2013, 11:38
Аспирант
Отправить личное сообщение для linklee Посмотреть профиль Найти все сообщения от linklee
 
Регистрация: 15.07.2013
Сообщений: 49

как оперативно ух ты...
что то не работает....
подключить что то надо?
задание такое тестовое... для этого надо =)
<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>
Ответить с цитированием
  #7 (permalink)  
Старый 15.07.2013, 11:41
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

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') );


Во.
Ответить с цитированием
  #8 (permalink)  
Старый 15.07.2013, 12:26
Аспирант
Отправить личное сообщение для linklee Посмотреть профиль Найти все сообщения от linklee
 
Регистрация: 15.07.2013
Сообщений: 49

что то до сих пор не работает(
пишет :
Uncaught SyntaxError: Unexpected token }
Ответить с цитированием
  #9 (permalink)  
Старый 15.07.2013, 12:29
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

скорей всего не хватает кавычки.. или лишняя
Ответить с цитированием
  #10 (permalink)  
Старый 15.07.2013, 12:32
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

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}}}}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить якорь из url okinadok Элементы интерфейса 19 05.07.2016 11:44
как получить цифры из строки? z700i Общие вопросы Javascript 4 04.04.2011 17:30
Как получить название композиции из Windows Mepia Plyaer alx99 Javascript под браузер 1 18.02.2011 16:21
Как обрезать строку и добавить символы в середине, в зависимости от длинны строки andreyua Firefox/Mozilla 12 10.12.2010 15:44
Как вложено прятать строки таблицы? Бобр Общие вопросы Javascript 10 01.08.2010 13:57