Tantangan ini sangat mudah, tetapi mudah-mudahan, ada banyak jalan yang bisa Anda dekati:
Anda perlu mencetak / mengembalikan objek JSON yang valid minimal 15 karakter, tidak termasuk spasi kosong yang tidak perlu. Program Anda harus bekerja tanpa masukan apa pun.
Demi kejelasan, objek JSON dimulai dan diakhiri dengan kurung kurawal {}
, dan berisi kunci nol atau lebih: pasangan nilai dipisahkan oleh koma. Spesifikasi JSON lengkap dapat ditemukan di json.org , dan output kode Anda harus melewati validator ini .
Karenanya, salah satu dari yang berikut ini tidak valid:
4 //Too short, not an object
"really, really long string" //A string, not an object
["an","array","of","values"] //An array is not a JSON object
{"this":4 } //You can't count unessential whitespace
{"1":1,"2":3} //Too short
{"a really long string"} //Not valid JSON, it needs a value
{'single-quoted':3} //JSON requires double-quotes for strings
Namun, yang berikut ini akan valid:
{"1":1,"2":2,"3":3,"4":4} //Long enough
{"whitespace ":4} //This whitespace isn't unessential
Bahasa non-pemrograman diizinkan untuk tantangan ini. Anda dapat mengembalikan string dari suatu fungsi, atau mencetaknya. Ini adalah kode-golf , jadi jawablah dengan kode sesedikit mungkin!
Jawaban:
Python 2, 14 byte
Output:
Backtick mendapatkan representasi string dalam Python 2. Biasanya, output di dalam ini menciptakan tanda kutip tunggal, yang Python mengakui sebagai membatasi string, tetapi JSON tidak. Tetapi Sp3000 mengamati bahwa ketika meringkas suatu tipe, deskripsi tipe sudah mengandung tanda kutip tunggal, yang memaksa tanda kutip luar menjadi tanda kutip ganda.
sumber
print({repr(str):1})
print({"'"*9:9})
for 16 (print{"'"*9:9}
adalah 14 lainnya di Py2)jq, 6 karakter
(3 karakter kode + 3 opsi opsi baris perintah.)
CW karena saya yakin ini bukan jawaban yang Anda izinkan.
Contoh dijalankan:
(Output jelas diperpendek.)
sumber
-n
dan akun ruang untuk tiga byte tambahan.Jelly , 11 byte
Cobalah online!
Keluaran
sumber
pwllgw
danbwllll
). Apa ini?Notepad, 7 penekanan tombol
Jika Anda memiliki komputer Windows dengan program Notepad, ketikkan ini:
{"F5":0}
Di komputer Windows 7 saya, setidaknya, ini memberi Anda sesuatu seperti:
sumber
Java (JDK 10) , 20 byte
Cobalah online!
Keluaran
sumber
+
keString.concat
>: ^ (String.concat
! Jika Anda memeriksa bytecode, ini adalah apa yang mengkompilasi Java menjadi:()->new StringBuilder("{\"\":").append(1/.3).append("}").toString()
. Juga, jangan khawatir, ini masih merupakan jawaban terpanjang di halaman ini, batalkan Brainfuck dan Java 7. Jadi Jawa memegang pangkatnya;)PHP,
1413 byteMencetak objek matematika yang
bagusyang hampir bisadibayangkanorang berguna:Menggunakan fakta bahwa php mencetak apa pun di luar tag kata demi kata untuk menghemat beberapa tanda kutip,
M_E
adalah konstanta terpendek yang bisa saya temukan.sunting: disimpan satu byte berkat Lynn. Sayangnya itu bukan lagi objek matematika yang 'bagus'.
sumber
""
adalah kunci JSON yang valid.JavaScript,
1715 byteTerima kasih kepada @Neil untuk yang ini. Panggilan tanpa input.
Keluaran
{"undefined":0}
Versi lama, 16 byte
Terima kasih kepada @ kamoroso94 untuk -1 pada versi ini
Keluaran
{"":9000000000}
sumber
a
)_=>`{"a":${_}}`
menghasilkan{"a":undefined}
, yang persis 15 karakter. Tercatat bahwa Anda tidak menggunakan input apa pun saat memanggil fungsi iniundefined
adalah nilai yang valid di JSON, tapi itu mudah diperbaiki dengan menjadikannya nama properti dan menggunakan nilai nol:_=>`{"${_}":0}`
.a
untuk membuat kunci string kosong, kunci yang valid di JSON. 1 byte lebih sedikit.Brainfuck, 50 byte
Keluaran
{"999999999999999999999999999999999999999999999999999999999999999999999999999999999":9}
. Mengasumsikan seorang juru bahasa yang memiliki sel 8-bit dan tidak terikat di sebelah kiri. Cobalah online!sumber
Pyth - 5 byte
Cetakan
{"'abcdefghijklmnopqrstuvwxyz'": 10}
.Cobalah online di sini .
sumber
Jolf, 9 byte
Output:
{"{¦q:¦q}":"{¦q:¦q}"}
. Coba di sini!sumber
Pyth, 7 byte
Membuat kamus yang berisi satu kunci
"'abcdefghijklmnopqrstuvwxyz'"
dan nilai0
:sumber
Batch, 16 byte
Cetakan
{"Windows_NT":0}
.sumber
///,
1514 karakter(Setidaknya output
12 karakter lebih panjang dari kode.)Cobalah online!
Terimakasih untuk:
Contoh dijalankan:
Agar lebih mudah dibaca:
sumber
/a/{":1234}/aa
(keluaran{":1234}{":1234}
)R, 19 byte
Menjadi sedikit lebih lama karena kebutuhan untuk melarikan diri dari kutipan
\"
. Selain itu,lh
adalah salah satu dataset bawaanR
dan (setahu saya) adalah objek dengan nama terpendek yang berisi 9 karakter yang diperlukan untuk mengisi panjang kunci. (sunting: ternyata berhasilpi
juga dengan opsi standar dan saya dikalahkan oleh @JDL yang cukup pintar untuk melarikan diri menggunakan tanda kutip tunggal daripada backslash tambahan)Deskripsi
lh
dalam dokumentasi-R adalah:yang merupakan nama kunci yang agak tidak terduga, tapi hei, itu berfungsi dan menghasilkan output:
Jawabannya dapat dibandingkan dengan hanya menambahkan kunci dengan huruf "acak" untuk menghasilkan setidaknya 15 karakter (24 byte):
sumber
cat('{"',lh,'":1}')
seperti yang saya lakukan di atas (meskipun saya menggunakanpi
bukanlh
). Dalam pencarian saya untuk variabel dua huruf saya menemukan fungsiel
yang saya tidak pernah tahu ada. Bisa berguna di masa depan ...PowerShell
222014 BytesKeluaran
Menggunakan konstanta yang ditentukan untuk 1TB dalam byte untuk mencapai batas karakter dan nilai integer statis untuk membuat json yang valid. Terima kasih kepada TimmyD untuk mengurangi karakter dengan 5 dengan menghapus beberapa redundansi.
Sebelumnya Posting 40 Bytes
Keluaran
Mengambil array integer dan membuat pasangan kunci-nilai untuk masing-masing. Bergabunglah dengan koma dan bungkus dengan satu set kawat gigi keriting.
sumber
05AB1E , 9 byte
Sayangnya, 05AB1E tidak memiliki objek kamus sehingga kami harus membuatnya sendiri.
Cobalah online!
Keluaran
sumber
Retina, 11 byte
Keluaran
Catatan: baris baru penting karena tidak ada yang diganti dengan output yang dihasilkan, saya telah menggunakan ruang tanpa putus untuk menggambarkan hal ini!
Cobalah online!
sumber
V , 9 byte
Cobalah online!
Sangat mudah. Memasuki mode penyisipan, memasuki teks berikut:
Alasan ini sangat singkat adalah karena
¹
mengulangi karakter berikut sebanyak 9 kali.sumber
JavaScript (ES6) + jQuery, 15 byte
Karena jQuery.
Output
{"function (a,b){return new n.fn.init(a,b)}":0}
saat dipanggil. Coba di sini:Tampilkan cuplikan kode
sumber
alert()
Anda tidak menghasilkan apaDyalog APL , 9 byte
Cobalah online!
Di ruang kerja yang bersih di PC saya hasilnya adalah
{"Category":"","DM":[],"EM":"","EN":0,"ENX":0,"HelpURL":"","InternalLocation":["",0],"Message":"","OSError":[0,0,""],"Vendor":""}
⎕JSON
konversikan ke JSON⎕DMX
objek (yang tersedia secara universal) D iagnostic M esage E x cenderungsumber
brainfuck, 83 byte
Keluaran
{"333333333":3}
Kemungkinan ada solusi lain yang lebih pendek, tetapi saya belum menemukannya.
Penjelasan:
Cobalah online
sumber
PHP, 19 byte
Keluaran:
{"387420489":1}
https://eval.in/665889
Berkat manatwork untuk tipsnya!
sumber
**
operator:pow(9,9)
→(9**9)
.{"<?=9**9?>":1}
Java 7, 36 byte
Java 8, 21 byte
Tidak digabungkan & kode uji:
Coba di sini.
Output (panjang 15):
sumber
1
( lihatSystem.identityHashCode(Object)
).""
sebagai kunci dan1e7
sebagai nilai.""
adalah kunci yang valid ketika dicoba di validator.this
kode. Adapun""
dengan1e7
, itu tidak akan berhasil sayangnya.1e6
output1000000.0
, tetapi1e7
output1.0E7
sebagai gantinya.R, 19 byte
Ini berfungsi di lokal Inggris Inggris; mungkin memerlukan +2 byte pada yang lain. (Edit: mungkin tidak --- lihat komentar.)
Saya berharap untuk sesuatu yang pintar (mungkin memetik baris kode dari fungsi yang sudah ada seperti
q
) tetapi tidak dapat menemukan apa pun. Hasil:Perhatikan bahwa Anda tidak harus melarikan diri dari tanda kutip ganda dalam R jika Anda menggunakan tanda kutip tunggal untuk mengutip string (dan sebaliknya). Perilaku ini bergantung pada lokal. Saya akan berharap itu bekerja di lokal bahasa Inggris AS juga.
Ini juga mensyaratkan bahwa
digits
opsi default Anda setidaknya enam (yang merupakan default pabrik-baru) dan ituscipen
setidaknya-digits
(default pabrik-baru adalah nol).sumber
options(quote)
yang dapat ditentukan oleh pengguna, tetapi defaultnya, sejauh yang saya tahu, bergantung pada lokal.options('quote')
tidak didokumentasikan , mengubahnya tidak memiliki efek yang dapat dilihat, dan meskipun saya telah menemukan banyak gangguan di RI keraguan bahwa opsi runtime akan mengubah cara itu diuraikan. Mungkin mengubah output tentu saja - tetapi tidak dalam kode dalam jawaban ini.quote
,squote
dll.Ruby, 19 byte
Keluaran:
sumber
puts
??1*9
masih cukup lama.Elemen , 18 byte
Cobalah online! Keluaran
{"a":387420489}
Ini hanya tiga byte lebih pendek dari solusi naif. Bagian pertama dari output adalah hard-coded (terlalu banyak karakter escape untuk membuat pendekatan lain yang layak), sementara nilainya dihitung
9^9
untuk membuat angka cukup lama.sumber
Perl 5,
1615 byteMenggunakan cap waktu unix saat program dimulai sebagai konten objek satu elemen. Ini memberikan output yang valid jika Anda menjalankannya lebih dari 10:46:39 pada 3 Maret 1973 . Tetapi karena kita tidak dapat kembali ke masa yang tampaknya sah.Menggunakan variabel FORMAT_TOP_HANDLE
$^
yang defaultnya adalahSTDOUT_TOP
.Jalankan dengan
-E
bendera tanpa biaya tambahan.Outputnya panjangnya 16 byte.
sumber
Cheddar,
1714 byteDisimpan 3 byte berkat @ ConorO'Brien
Fungsi anonim yang kembali
{":1234}{":1234}
, yang merupakan objek JSON yang valid:Cobalah online!
sumber
Batch Windows, 10 byte
Variabel lingkungan
OS
berisi stringWindows_NT
(Di semua sistem operasi Windows sejak 2000, menurut pertanyaan ini di Stack Overflow)sumber
{"%OS%":5}
karena itu akan menjadi perintah dan Anda mendapat manfaat dari fitur penelusuran dasar? Itu rumit.HQ9 +, 15 byte
Keluaran itu sendiri. Saya pikir jawaban 8 byte mungkin, seperti:
Output ini
{":11QQ}{":11QQ}
, yang merupakan JSON hampir valid, tetapi11QQ
bukan nilai yang valid.HQ9 + bukan bahasa pemrograman yang valid menurut standar PPCG, tetapi OP telah mengizinkan bahasa non-pemrograman.
sumber