DevToys for Mac
Here's a free nifty little Mac app that can do a whole bunch of tasks: formatting JSON, encode URLs, generate UUIDS.
Read more [github.com]
Posts tagged with json
Here's a free nifty little Mac app that can do a whole bunch of tasks: formatting JSON, encode URLs, generate UUIDS.
Read more [github.com]
? In case you haven’t used it yet, the second argument of JSON.stringify lets you cherry-pick ? keys to serialize. ? pic.twitter.com/bBgYKSne4S
— Tejas Kumar (@TejasKumar_) November 12, 2019
Read more [twitter.com]
Join 9,500+ smart developers
Every month I share what I learn from running Spatie, building Oh Dear, and maintaining 300+ open source packages. Practical takes on Laravel, PHP, and AI that you can actually use.
No spam. Unsubscribe anytime. You can also follow me on X.
In an older post on his blog Mohamed Said demonstrates how you can leverage virtual columns to speed up queries on data stored as JSON.
Laravel 5.3 is shipped with built-in support for updating and querying JSON type database fields, the support currently fully covers MySQL 5.7 JSON type fields updates and lookups,...
Let's see how we may create a generated column to store users favorite color for later indexing.
https://themsaid.com/laravel-mysql-json-colum-fast-lookup-20160709
Laravel 5.3, which will be released at this years Laracon US, has some new very handy functionality to work with MySQL 5.7 JSON columns. In a post on his site Matt Stauffer demonstrates the new API.
While Laravel has had the ability to cast your data to and from JSON since version 5.0, it was previously just a convenience—your data was still just stored in a TEXT field. But MySQL 5.7 introduced an actual JSON column type.Laravel 5.3 introduces a simple syntax for lookups and updates based on the value of specific keys in your JSON columns.
https://mattstauffer.co/blog/new-json-column-where-and-update-syntax-in-laravel-5-3
If you're going to use this functionality, you should also read Mohamed Said's post on how to improve performance by using MySQL generated columns.
JSON columns cannot be indexed. You can work around this restriction by creating an index on a generated column that extracts a scalar value from the JSON column.
http://themsaid.com/laravel-mysql-json-colum-fast-lookup-20160709/
Every year the city of Antwerp (my hometown :-)) organises lots of activities, such as an Ice rink, a Christmas market, a Santa Run and of course fireworks in the month of december. To inform people of which activities are happening where and when my team and I created a mobile app commissioned by the city council. The app is called "Winter in A" and is available on both Android's Play Store and iOS' App Store.
The administrators of the app can enter content in a custom installation of Blender, our Laravel based application. Blender will write of a bunch of json-files that are read by the mobile apps. Here's the file for all the events (english localization): https://api.winterapp.be/en/events.json. We use our homegrown laravel-fractal package to easily transform database records to json. Here's the export handler that's in charge of the exporting of events:
namespace App\Services\Export\ExportHandlers;
use App\Repositories\EventRepository;
use App\Services\Export\ExportHandler;
use App\Services\Export\Transformers\EventTransformer;
class Events implements ExportHandler
{
/**
* @var \App\Repositories\EventRepository
*/
protected $eventRepository;
public function __construct(EventRepository $eventRepository)
{
$this->eventRepository = $eventRepository;
}
/**
* Get the json for the given locale.
*
* @param string $locale
*
* @return mixed
*/
public function getJsonForLocale($locale)
{
return fractal()
->collection($this->eventRepository->getAllOnline())
->transformWith(new EventTransformer($locale))
->toJson();
}
}
The EventTransformer itself:
namespace App\Services\Export\Transformers;
use App\Models\Event;
use App\Services\Export\Format;
use App\Services\ValueObjects\Period;
use League\Fractal\TransformerAbstract;
use Spatie\MediaLibrary\Media;
class EventTransformer extends TransformerAbstract
{
/**
* @var
*/
protected $locale;
public function __construct($locale)
{
$this->locale = $locale;
}
public function transform(Event $event)
{
return [
'id' => $event->id,
'name' => $event->translate($this->locale)->name,
'text' => htmlToMarkdown($event->translate($this->locale)->text),
...
'images' => $event->getMedia('images')->map(function (Media $media) {
return [
'thumb' => $media->getUrl('thumb'),
'full' => $media->getUrl('full')
];
}),
];
}
}
To handle peaks in usage of the app we use CloudFlare. In this article they explain what they do. Cloudflare has this awesome feature called "Always online", to make sure the API is online even if our server is not.
The first events of Winter in Antwerp are starting tomorrow. The last ones are scheduled in the first days of 2016. I'll share some more tidbits of the code then.