Содержание
Введение в JSON. Я начал часто подмечать, что… | by Stas Bagretsov
Я начал часто подмечать, что большинство разработчиков умеют работать с JSON на поверхностном уровне или просто слышали про него, но четкого определения и понимания его сути мало кто знает. Хотя это знание является необходимым для каждого разработчика в сфере front-end, да и не только.
Это статья перевод An Introduction to JSON
👉Мой Твиттер — там много из мира фронтенда, да и вообще поговорим🖖. Подписывайтесь, будет интересно: ) ✈️
JSON это сокращение от JavaScript Object Notation — формата передачи данных. Как можно понять из названия, JSON произошел из JavaScript, но он доступен для использования на многих других языках, включая Python, Ruby, PHP и Java, в англоязычным странах его в основном произносят как Jason, то есть как имя ДжЭйсон, в русскоязычных странах ударение преимущественно ставится на “о” — ДжисОн.
Сам по себе JSON использует расширение . json
. Когда же он определяется в других файловых форматах, как .html
, он появляется в кавычках как JSON строка или может быть объектом, назначенным на переменную. Такой формат легко передавать между сервером и клиентской частью, ну или браузером.
Легкочитаемый и компактный, JSON представляет собой хорошую альтернативу XML и требует куда меньше форматирования контента. Это информативное руководство поможет вам быстрее разобраться с данными, которые вы можете использовать с JSON и основной структурой с синтаксисом этого же формата.
Объект JSON это формат данных — ключ-значение, который обычно рендерится в фигурных скобках. Когда вы работаете с JSON, то вы скорее всего видите JSON объекты в .json
файле, но они также могут быть и как JSON объект или строка уже в контексте самой программы.
Вот так выглядит JSON объект:
{
"first_name" : "Sammy",
"last_name" : "Shark",
"location" : "Ocean",
"online" : true,
"followers" : 987
}
Хоть это и короткий пример, и JSON мог бы быть гораздо больше, он показывает то, что этот формат указывается двумя фигурными скобками, которые выглядят так { }
, а данные в формате ключ-значние уже находятся между ними. Большинство используемых данных в JSON, заключаются в JSON объекты.
Пары ключ-значние разделены двоеточием, как например тут "key" : "value"
. Каждая пара значений разделена двоеточием, таким образом середина JSON выглядит так: "key" : "value"
, "key" : "value"
, "key" : "value"
. В нашем примере выше, первая пара ключевых значений это "first_name" : "Sammy"
.
Ключи в JSON находятся с левой стороны от двоеточия. Их нужно оборачивать в скобки, как с "key"
и это может быть любая строка. В каждом объекте, ключи должны быть уникальными. Такие ключевые строки могут содержать пробелы, как в "first_name"
, но такой подход может усложнить получение доступа к ним во время процесса разработки, так что лучшим вариантом в таких случаях будет использование нижнего подчеркивания, как сделано тут "first_name"
.
JSON значения находятся с правой стороны от двоеточия. Если быть точным, то им нужно быть одним из шести типов данных: строкой, числом, объектом, массивом, булевым значением или null
.
На более широком уровне, значения могут также состоять их сложных типов данных, таких как JSON объект или массив. Об этом мы расскажем чуть позже.
Каждый тип данных, который передается как значения в JSON будет поддерживать свой собственный синтаксис, так что строки будут в кавычках, а цифры нет.
Хоть в .json
файлах мы обычно видим формат нескольких строк, JSON также может быть написан в одну сплошную строку.
{ "first_name" : "Sammy", "last_name": "Shark", "online" : true, }
Такой подход наиболее распространен в файлах других форматов или при работе с JSON строкой.
Работа с JSON в многострочном формате зачастую делает его более читабельным, особенно когда вы пытаетесь справиться с большим набором данных. Так как JSON игнорирует пробелы между своими элементами, вы можете разделить их теми же самыми пробелами, чтобы сделать данные более читабельными:
{
"first_name" : "Sammy",
"last_name" : "Shark",
"online" : true
}
Очень важно помнить то, что хоть они и похожи визуально, объекты JSON не имеют тот же формат, как объекты JavaScript, так образом, хоть вы и можете использовать функции внутри JavaScript объектов, вы не можете использовать их как значения в JSON. Самым важным свойством JSON является то, что он может без труда передаваться между языками программирования в формате, который понимают практически все из них. JavaScript объекты могут работать только напрямую через JavaScript.
Пока что мы видели JSON в самых простых случаях, но он может стать иерархичным и сложным, включая в себя вложенные объекты и массивы. Сейчас мы пройдемся по более сложному примеру JSON.
JSON может содержать другие вложенные объекты в JSON, в дополнение к вложенным массивам. Такие объекты и массивы будут передаваться, как значения назначенные ключам и будут представлять собой связку ключ-значение.
Вложенные объекты
В файле users.json
, для каждого из четырех пользователей ("sammy"
, "jesse"
, "drew"
, "jamie"
) есть вложенный JSON объект, передающий значения для каждого из пользователей, со своими собственными вложенными ключами "username"
и "location"
. Первый вложенный JSON объект подсвечен ниже:
{
"sammy" : {
"username" : "SammyShark",
"location" : "Indian Ocean",
"online" : true,
"followers" : 987
},
"jesse" : {
"username" : "JesseOctopus",
"location" : "Pacific Ocean",
"online" : false,
"followers" : 432
},
"drew" : {
"username" : "DrewSquid",
"location" : "Atlantic Ocean",
"online" : false,
"followers" : 321
},
"jamie" : {
"username" : "JamieMantisShrimp",
"location" : "Pacific Ocean",
"online" : true,
"followers" : 654
}
}
В примере выше, фигурные скобки везде используются для формирования вложенного JSON объекта с ассоциированными именами пользователей и данными локаций для каждого из них. Как и с любым другим значением, используя объекты, двоеточие используется для разделения элементов.
Вложенные массивы
Данные также могут быть вложены в формате JSON, используя JavaScript массивы, которые передаются как значения. JavaScript использует квадратные скобки [ ]
для формирования массива. Массивы по своей сути — это упорядоченные коллекции и могут включать в себя значения совершенно разных типов данных.
Мы можем использовать массив при работе с большим количеством данных, которые могут быть легко сгруппированны вместе, как например, если есть несколько разных сайтов и профайлов в социальных сетях ассоциированных с одним пользователем.
В этом примере, первый вложенный массив подсвечен:
{
"first_name" : "Sammy",
"last_name" : "Shark",
"location" : "Ocean",
"websites" : [
{
"description" : "work",
"URL" : "https://www.digitalocean.com/"
},
{
"desciption" : "tutorials",
"URL" : "https://www.digitalocean.com/community/tutorials"
}
],
"social_media" : [
{
"description" : "twitter",
"link" : "https://twitter.com/digitalocean"
},
{
"description" : "facebook",
"link" : "https://www. facebook.com/DigitalOceanCloudHosting"
},
{
"description" : "github",
"link" : "https://github.com/digitalocean"
}
]
}
Ключи "websites"
и "social_media"
используют массив для вложения информации о сайтах пользователя и профайлов в социальных сетях. Мы знаем, что это массивы — из-за квадратных скобок.
Использование вложенности в нашем JSON формате позволяет нам работать с наиболее сложными и иерархичными данными.
XML расшифровывается как eXtensible Markup Language. Это способ хранения данных, которые могут быть прочитаны как людьми, так и машинами. Формат XML доступен для использования во многих языках программирования.
Во многих случаях, XML очень схож с JSON, но он требует больше писанины, таким образом становясь длиннее и потребляя больше времени для чтения и записи. XML должен быть спарсен с XML парсером, но JSON может быть спарсен стандартным функционалом. Так же, в отличие от JSON, XML не может использовать массивы.
Мы посмотрим на пример XML формата и затем сравним его рендер в JSON.
<users>
<user>
<username>SammyShark</username> <location>Indian Ocean</location>
</user>
<user>
<username>JesseOctopus</username> <location>Pacific Ocean</location>
</user>
<user>
<username>DrewSquir</username> <location>Atlantic Ocean</location>
</user>
<user>
<username>JamieMantisShrimp</username> <location>Pacific Ocean</location>
</user>
</users>
А вот это уже формат JSON:
{"users": [
{"username" : "SammyShark", "location" : "Indian Ocean"},
{"username" : "JesseOctopus", "location" : "Pacific Ocean"},
{"username" : "DrewSquid", "location" : "Atlantic Ocean"},
{"username" : "JamieMantisShrimp", "location" : "Pacific Ocean"}
] }
Тут мы видим, что JSON более компактный и не требует тегов закрытия как в XML. Более того, XML не может использовать массивы, как в примере с JSON.
Если вы знакомы с HTML, то вы подметите то, что XML выглядит похожим на теги. Хоть JSON компактнее и требует меньше писанины, чем XML, а также быстрее в использовании для многих ситуациях, включая AJAX, вам понадобится понять тип проекта над которым вы работаете, перед принятием решения — какую структуру данных использовать.
JSON это нейтральный формат для использования и он имеет множество имплементаций для использования во многих языках програмирования. Вы можете увидеть полный список поддерживаемых языков на “Introducing JSON”
В большинстве случаев вам не придется писать чистый JSON, но вы будете доставать его из источников данных или конвертировать другие дата файлы в JSON. Вы можете сконвертить CSV или табуляционные данные из таких программ как Exel и т.п в JSON, используя open-source инструмент Mr. Data Converter. Вы также можете сконвертировать XML в JSON и наоборот на http://www.utilities-online. info/xmltojson/. Но помните, что используя инструменты автоматизации, вы должны всегда проверять ваши результаты и удалять все лишнее.
Переводя другие типы данных в JSON или создавая свой собственный, вы можете валидировать свой JSON на JSONLint http://jsonlint.com/ и можете протестировать его в контексте веб-разработки на JSFiddle.
JSON это легкий формат, который позволяет вам легко делиться, хранить и работать с данными. Как формат, JSON переживает растущую поддержку API, включая и Twitter API.
Так как вы скорее всего не будете создавать ваши собственные .json
файлы, но будете получать их из других источников, то становится очень важным меньше думать о самой JSON структуре и больше о том, как лучше его применять в ваших программах.
Хранение данных, JSON— Ruby Rush
На этом уроке мы познакомимся с другим очень популярным форматом, который чаще используют для передачи данных между программами и серверами по сети: JSON.
План урока
- Как гуляют данные по сети
- Формат данных JSON (Джейсон)
- Пишем программу-гороскоп
youtube.com/embed/CQU230pVP3A» frameborder=»0″ allow=»accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture» allowfullscreen=»»>
Когда XML-формата недостаточно
XML — очень сложный и навороченный формат (мы просто не касались сложностей) — в нем можно хранить все, даже картинки, чем пользуется Word (см. уро 29). Зачастую нужно передать простые данные (список покупок в магазине, email пользователя, адрес сайта).
Для этого можно воспользоваться форматом попроще, JSON.
Для такого простого списка XML избыточен. Формат JSON — он проще, меньше весит, а значит в некоторых случаях быстрее передается и обрабатывается. Любой уважающий себя программист должен знать оба формата. В будущих уроках мы еще на практике не раз будем обоими ими пользоваться.
Формат данных JSON
По сути это JSON-объект — это ассоциативный массив, записанный в файл по строгим правилам: набор пар ключ-значение, перечисленных через запятую, внутри фигурных скобок:
{ "red": "#f00", "green": "#0f0", "blue": "#00f", "cyan": "#0ff", "magenta": "#f0f", "yellow": "#ff0", "black": "#000" }
Ключом в JSON-файле может быть только строка, а вот значением может быть не только строка, но и число, булевский тип (true
или false
), другой JSON-объект или массив.
{ "string": "Строка", "number": 42, "boolean": true, "array": ["Я", "массив", "строк"], "json": { "key1": "value1", "key2": "value2" } }
Также в JSON можно хранить массив JSON-объектов.
[ {"name": "Vasya", "sex": "yes"}, {"name": "Katya", "sex": "no"} ]
Как видите ничего лишнего, только то, что доктор прописал для простых данных. JSON-объекты проще, но ими также можно описать очень сложные структуры данных при желании. Но обычно ветвление даже не идёт дальше второго уровня.
Чтение JSON-файлов в Ruby
JSON-объекты очень удобны тем, что в любом языке программирования, где есть ассоциативные массивы, их очень удобно использовать (и именно поэтому ассоциативные массивы так популярны). Для конвертации JSON-объекта в хэш руби нам понадобится парсер. Который уже встроен в ruby, но его, однако, нужно подключить с помощью команды require
.
# Подключаем JSON-парсер require 'json' # Читаем файл с цветами file = File. read('colors.json') # Конвертируем JSON-объект в хэш руби data_hash = JSON.parse(file) # Выводим код красного цвета p data_hash['red']
Пишем программу-гороскоп
Давайте для начала поставим задачу: хотим программу, которая просит пользователя ввести дату рождения и показывает ему информацию о его знаке зодиака.
И для начала, как обычно, давайте продумаем, как мы будем хранить данные. Пусть в файле signs.json
у нас будет JSON-объект, ключами которого будут названия знаков зодиака на латыни, а значениями — JSON-объекты, содержащие информацию об этом знаке: интервалы дат и описание.
Подробнее смотрите файл signs.json
в материалах к этому уроку.
Давайте теперь напишем саму программу, создайте в папке урока rubytut2/lesson10
файл astro_sign.rb
:
# Подключаем нужные библиотеки require 'json' require 'date' # Прочитаем файл со знаками зодиака и сразу запишем данные в хэш # Это делается с помощью специального класса JSON file = File. read('signs.json', encoding: 'utf-8') signs = JSON.parse(file) # Спросим у пользователя дату его рождения puts "Когда вы родились (укажите дату в формате ДД.ММ, например, 08.03)" input_date = STDIN.gets.chomp # Создадим объект класса Date и запишем в него дату рождения # Нам не важен год, поэтому везде будем ставить 2000-й, чтобы метод Parse мог взять конкретную дату user_birth_date = Date.parse(input_date + '.2000') # Теперь пройдёмся по всем ключам нашего ассоциативного массива и найдём нужный знак user_sign = nil # Для ассоциативных массивов, как и для обычных, тоже есть метод each signs.each do |sign_key, sign| # Разобьём даты в массив из двух элементов знакомым методом split dates = sign['dates'].split('..') # У объектов класса Date определены методы больше и меньше # Они позволяют сравнивать даты как числа # Если день рождения пользователя попадает между датами какого-то знака зодиака, # записываем результат в переменную user_sign if (Date.parse(dates[0] + '.2000') <= user_birth_date) && (user_birth_date <= Date. parse(dates[1] + '.2000')) user_sign = sign end end # Наконец, выведем пользователю его описание знака puts user_sign['dates'] puts user_sign['text']
Обратите внимание, что чтобы эта программа работала с козерогами, нам пришлось в файле signs.json
разбить этот знак на два один с интервалом в январе, другой с интервалом в декабре.
Как писать в JSON-файлы в руби мы отдельно разбирать не будем. Так что разберитесь сами.
Еще раз напомним, что хороший программист должен знать оба формата: и XML и JSON, потому что оба они очень популярны. В будущих уроках, когда мы начнем работать с сетью, вы на деле увидите все преимущества, которые они дают.
А на следующем уроке — наше первое знакомство с БД, поистине незаменимым инструментом программиста.
JSON: что это такое, как это работает и как его использовать
На этой неделе я хочу затронуть тему, которая, по моему мнению, стала важной частью набора инструментов любого разработчика: возможность загружать и манипулировать каналами JSON с других сайтов. через АЯКС. В настоящее время многие сайты обмениваются данными, используя JSON в дополнение к RSS-каналам, и на то есть веская причина: JSON-каналы могут загружаться асинхронно гораздо проще, чем XML/RSS. В этой статье рассматриваются следующие темы:
- Что такое JSON?
- Почему JSON имеет значение?
- Как мы используем JSON в проекте?
В конце этого проекта мы также воспользуемся нашими новыми навыками работы с JSON, чтобы создать быстрое приложение, загружающее фотографии с Flickr без обновления страницы.
[demolink]Посмотреть демо | Загрузите исходный код[/demolink]
Что такое JSON?
JSON является сокращением от JavaScript Object Notation и представляет собой способ хранения информации в организованном и удобном для доступа виде. В двух словах, это дает нам удобочитаемую коллекцию данных, к которой мы можем получить доступ действительно логическим образом.
Хранение данных JSON
В качестве простого примера, информация обо мне может быть записана в формате JSON следующим образом:
Посмотреть код на Gist.
Это создает объект, к которому мы обращаемся, используя переменную jason
. Заключая значение переменной в фигурные скобки, мы указываем, что это значение является объектом. Внутри объекта мы можем объявить любое количество свойств, используя "имя": "значение"
пары, разделенные запятыми. Чтобы получить доступ к информации, хранящейся в jason
, мы можем просто обратиться к имени нужного нам свойства. Например, чтобы получить информацию обо мне, мы могли бы использовать следующие фрагменты кода:
Посмотреть код на Gist.
Хранение данных JSON в массивах
Немного более сложный пример включает хранение двух людей в одной переменной. Для этого мы заключаем несколько объектов в квадратные скобки, , что означает массив. Например, если бы мне нужно было включить информацию о себе и моем брате в одну переменную, я мог бы использовать следующее:
Посмотреть код на Gist.
Чтобы получить доступ к этой информации, нам нужно получить доступ к индексу массива человека, к которому мы хотим получить доступ. Например, мы могли бы использовать следующий фрагмент для доступа к информации, хранящейся в семействе
:
Посмотреть код на Gist.
ПРИМЕЧАНИЕ: Это полезно, если необходимо перебрать сохраненную информацию, так как она поддается для цикла
с автоматически увеличивающимся значением.
Вложение данных JSON
Другим способом хранения нескольких людей в нашей переменной было бы вложение объектов. Для этого мы должны создать что-то вроде следующего:
Посмотреть код на Gist.
Доступ к информации во вложенных объектах немного проще понять; для доступа к информации в объекте мы будем использовать следующий фрагмент:
Посмотреть код на Gist.
Вложенные JSON и массивы можно комбинировать по мере необходимости, чтобы хранить столько данных, сколько необходимо.
Почему JSON имеет значение?
С появлением сайтов, использующих AJAX, для сайтов становится все более важным иметь возможность загружать данные быстро и асинхронно , или в фоновом режиме без задержки рендеринга страницы. Переключение содержимого определенного элемента в наших макетах без необходимости обновления страницы добавляет нашим приложениям «вау» фактор, не говоря уже о дополнительном удобстве для наших пользователей. Из-за популярности и простоты социальных сетей многие сайты полагаются на контент, предоставляемый такими сайтами, как Twitter, Flickr и другими. Эти сайты предоставляют RSS-каналы, которые легко импортировать и использовать на стороне сервера, но если мы попытаемся загрузить их с помощью AJAX, мы упремся в стену: мы можем загрузить RSS-канал только в том случае, если мы запрашиваем его из того же домена, на котором он размещен. Попытка загрузить RSS-канал моей учетной записи Flickr с помощью метода jQuery $.ajax()
приводит к следующей ошибке JavaScript:
См. код в Gist.
JSON позволяет нам преодолеть междоменную проблему, поскольку мы можем использовать метод под названием JSONP, который использует функцию обратного вызова для отправки данных JSON обратно в наш домен. Именно эта возможность делает JSON невероятно полезным, поскольку он открывает множество дверей, которые раньше было трудно обойти.
Как загрузить JSON в проект?
Одним из самых простых способов загрузки данных JSON в наши веб-приложения является использование метода $.ajax()
, доступного в библиотеке jQuery. Простота извлечения данных зависит от сайта, предоставляющего данные, но простой пример может выглядеть так:
Просмотрите код в Gist.
В этом примере будут запрашиваться последние элементы веб-канала в формате JSON и выводиться в браузер. Очевидно, что нам не хотелось бы выводить необработанные данные JSON в браузер, но в этом примере показаны основы загрузки JSON из внешнего источника.
Практический пример: загрузка потоков Flickr с помощью JSON и jQuery
[demolink]Смотреть демонстрацию | Загрузите исходный код[/demolink]
Чтобы показать, как работает JSON на реальном примере, давайте загрузим фотографии с Flickr с помощью jQuery и JSON-версии «Последней» фотопотока Flickr.
Шаг 1. Создайте запрос AJAX
Доступ к фотопотокам Flickr относительно прост. У всех пользователей есть уникальный идентификационный номер, который мы отправим в составе запроса на этот URL.
Посмотреть код на Gist.
Запрос, который нам нужно отправить, запрашивает последние фотографии от рассматриваемого пользователя, а также флаги, запрашивающие ответ в формате JSON. Запрос, который нам нужно отправить, будет выглядеть так:
Посмотреть код на Gist.
В приведенном выше примере XXXXXXXX@NXX необходимо заменить идентификатором пользователя. Мы напишем функцию, поэтому идентификатор пользователя будет передан в качестве аргумента с именем flickrID
. Наша функция будет называться loadFlickr()
. Давайте создадим функцию, которая будет загружать наш ответ JSON:
Посмотрите код на Gist.
Возвращенные данные JSON будут выглядеть примерно так (обратите внимание, что для краткости я удалил все возвращенные фотографии, кроме одной):
Посмотрите код на Gist.
Шаг 2: Обработка данных JSON
Мы собираемся отобразить миниатюры последних 16 фотографий, которые будут ссылаться на изображение среднего размера. Flickr JSON немного сбивает с толку, и он не дает прямой ссылки на уменьшенную версию наших фотографий, поэтому нам придется использовать некоторые хитрости с нашей стороны, чтобы добраться до него, о чем мы расскажем чуть ниже. момент. Каждая запись фотографии хранится в массиве с именем items
, к которому мы обращаемся в нашем вызове AJAX, используя feed. items
. Чтобы получить данные о каждой записи, мы будем перебирать элементы, пока не найдем либо последнюю доступную фотографию, либо всего 16 фотографий; что наступит раньше. Давайте изменим нашу функцию и настроим цикл:
Посмотреть код на Gist.
Нас интересует элемент «m», хранящийся в элементе «media». Доступ к этому можно получить в нашем цикле, используя feed.items[i].media.m
. Мы собираемся запустить регулярное выражение для этого значения, чтобы получить пути к среднему и миниатюрному изображениям, которые мы соберем в связанное миниатюрное изображение. Затем мы поместим только что собранный HTML-код в созданный нами массив миниатюр. После того, как мы закончим цикл, мы будем объединить все изображения в одну строку HTML и заменить содержимое нашего элемента отображения загруженными эскизами. Давайте добавим этот функционал в наш скрипт:
Посмотреть код на Gist.
Обратите внимание, что я также добавил функцию с именем addLB()
в конец этой функции; это добавляет эффект лайтбокса к нашим миниатюрам, что делается исключительно для эстетики.
Шаг 3. Вызов нашей функции
Теперь мы готовы вызвать нашу функцию. Чтобы загрузить мой поток Flickr, нам нужно вызвать нашу функцию следующим образом:
Посмотреть код на Gist.
В опубликованном примере несколько пользовательских фотопотоков помещаются в содержащее поле, не вызывая обновления страницы. Посмотрите на исходный код демо, чтобы увидеть, как это было сделано. ПРИМЕЧАНИЕ. Имейте в виду, что эта демонстрация должна была показать, как загружать данные JSON, а не то, как реализовать код для вызова функции. Вызовы JavaScript являются встроенными, и их НЕ следует использовать в производственном сценарии.
[demolink]Посмотреть демо | Скачать исходник[/demolink]
Сводка
Использовали ли вы JSON раньше? Есть ли что-то, что вы хотели бы прояснить или получить дополнительные разъяснения относительно JSON? Дай мне знать в комментариях!
Jason Segel — IMDb
- Biography
- Awards
- Trivia
IMDbPro
- Actor
- Writer
- Producer
Play Trailer2
:
01
Windfall (2022)
99 + Видео
99+ Фото
Джейсон Джордан Сигел, обладающий множеством талантов, родился в Лос-Анджелесе, штат Калифорния, где его воспитывали родители, Джиллиан (Джордан), домохозяйка, и Элвин Сигел, юрист. Его мать имеет английское, шотландское и ирландское происхождение, а его отец имеет еврейское происхождение ашкенази. Он получил образование в приходской школе Святого Матфея в Пасифик Палисейдс, а затем перешел в школу Гарвард-Вестлейк в Лос-Анджелесе. Во время учебы он проявлял интерес к актерскому мастерству и часто играл в пьесах в Palisades Playhouse.
Его главный прорыв произошел в 1999 году, когда он получил роль Ника Андополиса в хорошо известном сериале Джадда Апатоу «Чудики и выродки» (1999).
Затем последовали другие роли на телевидении и в кино, особенно в фильмах «Как я встретил вашу маму» (2005) и «Немножко беременна» (2007). Однако его прорыв в кино произошел в хите 2008 года « Забыть Сару Маршалл» (2008), в котором он написал сценарий и снялся в нем. Сегел также был соавтором сценария и снялся в фильме «Маппеты» (2011).
Сегел также является музыкантом и автором песен, его песни появляются во многих проектах, включая Freaks and Geeks (1999), Забыть Сару Маршалл (2008),
«Я люблю тебя, чувак» (2009 г. ), «Как я встретил вашу маму» (2005 г.) и «Отведи его к греку» (2010 г.).
Bornjanuary 18, 1980
- Подробнее на IMDBPRO
- Награды
- 7 WINS и 28 номинаций
Photo777
VIEOS112
Photo777
VIEOS112
Photo777
VIGES112
55559.GING5 . Вопросы
Ролик 1:05
«Возьми клей для дерева»
Ролик 0:30
Я люблю тебя, мужчина: «Пытаюсь забеременеть»
Клип 0:52
Я люблю тебя, мужчина: «День открытых дверей»
Клип 0:57
Я люблю тебя, мужчина: «Парень с девушкой»
Клип 0:38
Я люблю тебя, чувак: «Ты играешь на инструменте?»
Клип 0:37
Пятилетняя помолвка
Клип 1:04
Пятилетняя помолвка
Клип 0:50
Забывая Сара Маршалл
КЛИП 0:50
Забывая Сара Маршалл
.