พิมพ์ JSON บางส่วน


74

ความท้าทายนี้ตรงไปตรงมา แต่หวังว่าจะมีช่องทางมากมายที่คุณสามารถเข้าใกล้:

คุณต้องพิมพ์ / ส่งคืนวัตถุ JSON ที่ถูกต้องที่มีอักขระอย่างน้อย 15 ตัวโดยไม่นับช่องว่างที่ไม่จำเป็น โปรแกรมของคุณควรทำงานโดยไม่ต้องป้อนข้อมูลใด ๆ

ในความสนใจของความชัดเจนวัตถุ JSON จะเริ่มต้นและสิ้นสุดด้วยเครื่องหมายปีกกาแบบหยิก{}และมีคู่ของคีย์หรือศูนย์: ค่าที่คั่นด้วยเครื่องหมายจุลภาค ข้อมูลจำเพาะ JSON แบบเต็มสามารถพบได้ที่json.orgและผลลัพธ์ของรหัสของคุณจะต้องผ่านตัวตรวจสอบนี้

ดังนั้นสิ่งต่อไปนี้จะไม่ถูกต้อง:

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

อย่างไรก็ตามสิ่งต่อไปนี้จะถูกต้อง:

{"1":1,"2":2,"3":3,"4":4}       //Long enough
{"whitespace      ":4}          //This whitespace isn't unessential

ภาษาที่ไม่ใช่การเขียนโปรแกรมได้รับอนุญาตในการท้าทายนี้ คุณอาจส่งคืนสตริงจากฟังก์ชันหรือพิมพ์ออกมา นี่คือดังนั้นตอบด้วยรหัสน้อยที่สุด!


1
ฉันชอบคำตอบที่หลากหลายในนี้
Robert Fraser

Hmmmm นิยามของ JSON ของคุณมี จำกัด สิ่งที่เกี่ยวกับรหัสที่ ouputs JSON ที่ถูกต้อง แต่ไม่ได้ออกวงเล็บปีกกา?
Konijn

4
@Konijn ชอบฉันกล่าวว่ามันจะต้องเป็น JSON ที่ถูกต้องวัตถุ วัตถุถูกกำหนดโดยเครื่องมือจัดฟันแบบหยิก
Nathan Merrill

เข้าใจแล้วโดยเน้นที่วัตถุ;)
Konijn

1
@Masterzagh แต่น่าเสียดายที่วัตถุ JS ดั้งเดิมไม่นับ "คุณอาจส่งคืนสตริงจากฟังก์ชันหรือพิมพ์ออกมา"
Nathan Merrill

คำตอบ:


72

Python 2, 14 ไบต์

print{`str`:1}

ขาออก:

{"<type 'str'>": 1}

backticks รับการแทนค่าสตริงใน Python 2 โดยปกติเอาต์พุตนี้จะสร้างอัญประกาศเดี่ยวซึ่ง Python รับรู้เป็นการกำหนดสตริง แต่ JSON ไม่ได้ แต่ Sp3000 ตั้งข้อสังเกตว่าเมื่อสร้างสตริงประเภทคำอธิบายประเภทนั้นมีเครื่องหมายคำพูดเดี่ยวอยู่แล้วซึ่งบังคับให้เครื่องหมายคำพูดด้านนอกเป็นเครื่องหมายคำพูดคู่


20
@ Sp3000 มันช่างสวยงามเหลือเกิน
xnor

6
และฉันคิดว่า JS เป็นภาษาเดียวที่คุณสามารถใช้ในการดูถูกเหยียดหยามได้จริง ๆ ...
Downgoat

วิธีการเดียวกันนี้ใช้กับ py3 ที่มี 20 bytesprint({repr(str):1})
dahrens

1
@dahrens สำหรับ Py3: print({"'"*9:9})สำหรับ 16 ( print{"'"*9:9}เป็นอีก 14 ใน Py2)
Jonathan Allan

37

jq, 6 ตัวอักษร

(ตัวเลือกบรรทัดคำสั่งรหัส 3 ตัวอักษร + 3 ตัวอักษร)

env

CW เพราะฉันแน่ใจว่านี่ไม่ใช่คำตอบที่คุณต้องการจะอนุญาต

วิ่งตัวอย่าง:

bash-4.3$ jq -n 'env'
{
  "GIT_PS1_SHOWDIRTYSTATE": "1",
  "TERM": "xterm",
  "SHELL": "/bin/bash",
  "GIT_PS1_SHOWUNTRACKEDFILES": "1",
  "XTERM_LOCALE": "en_US.UTF-8",
  "XTERM_VERSION": "XTerm(322)",
  "GIT_PS1_SHOWSTASHSTATE": "1",
  "GIT_PS1_SHOWUPSTREAM": "auto",
  "_": "/usr/bin/jq"
}

(เห็นได้ชัดว่าการส่งออกสั้นลง)


6
นี่เป็นข้อเสนอที่ถูกต้องแน่นอน (และไม่จำเป็นต้องมี CW)
Nathan Merrill


1
สิ่งนี้นับเป็นการถ่ายแก้ปัญหาให้กับตัวเครื่องซึ่งเกือบจะเป็นช่องโหว่ที่ต้องห้าม คำหลัก: เกือบ
John Dvorak

1
@JanDvorak มันไม่ได้เป็นช่องโหว่เสมอเพราะมีหลายกรณีที่มันน่าสนใจที่จะเห็นการใช้งานในตัว นี่คือหนึ่งในนั้น
Fengyang Wang

1
ฉันจะไม่ทำสิ่งใดกับความต้องการที่ชัดเจนของคุณ แต่ฉันเห็นด้วยว่าควรทำอย่างนี้ นอกจากนี้ฉันทามติปัจจุบันคือแฟล็กล่ามต้องนับความแตกต่างระหว่างการเรียกใช้ที่มีและไม่มีแฟล็กดังนั้น-nและบัญชีอวกาศสำหรับสามไบต์พิเศษ
Dennis

31

เยลลี่ 11 ไบต์

“Ɠɼ'ẸẠḌȷżÑ»

ลองออนไลน์!

เอาท์พุต

{"Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch":0}


1
มันมี 6 พยัญชนะในแถวสองครั้ง ( pwllgwและbwllll) อะไรกันนะ?
สตีเฟนเอช

2
@ ETHproductions แน่นอน แต่ฉันต้องการอย่างน้อย 9 ตัวอักษรเพื่อให้สอดคล้องกับขีด จำกัด คำทั้งหมดที่มีตัวอักษร 6+ ตัวอยู่ในพจนานุกรมขนาดยาวดังนั้นมันจึงไม่สำคัญว่าคุณจะเลือกคำใด
Dennis


8
เดี๋ยวก่อน Jelly มี built-in สำหรับสิ่งนี้อยู่ใช่ไหม
Buffer Over อ่าน

19

Notepad, 7 การกดแป้น

หากคุณมีคอมพิวเตอร์ Windows ที่มีโปรแกรม Notepad ให้พิมพ์สิ่งนี้:

{"F5":0}

อย่างน้อยในคอมพิวเตอร์ Windows 7 ของฉันสิ่งนี้ให้สิ่งที่คุณต้องการ:

{"3:42 PM 10/25/2016":0}

1
@cat เป็นโปรแกรมไม่ใช่ภาษาโปรแกรม แต่อีกครั้งฉันเชื่อว่า Vim เหมือนกัน
ETHproductions

2
ดีที่เป็นกลุ่มคือเขียนโปรแกรมภาษา "" ทั้งในการที่จะตอบสนองกฎ PPCG (ไม่ทัวริงสมบูรณ์) แต่ยังอยู่ในทัวริงสมบูรณ์ (อย่างน้อยผมค่อนข้างมั่นใจว่า)
แมว

1
@ แมวฉันเห็น ฉันไม่แน่ใจว่าแผ่นจดบันทึกทัวริงสมบูรณ์หรือไม่ ฉันสงสัยมัน แต่อาจจะ; ท้ายที่สุดแล้ว, /// ได้รับการพิสูจน์แล้ว, และ Notepad สามารถสร้างคุณสมบัติเดียวได้
ETHproductions

1
Vim นั้นแตกต่างจาก Notepad - คุณสามารถบันทึกสคริปต์และเรียกใช้ภายในเอดิเตอร์ ไม่มีคุณสมบัติดังกล่าวใน Notepad ดังนั้นฟีเจอร์ใน Notepad (การค้นหาและแทนที่, การคัดลอกและการวางพื้นฐาน) ที่อนุญาตให้เป็น TC ต้องการไดอะล็อกการนำทางในแต่ละครั้ง - ซึ่งหมายถึงการกดแป้นมากกว่า
Mego

1
@cat ใช่ขอโทษฉันหมายความว่ามันได้รับอนุญาตตั้งแต่การสนทนาของเรา
ETHproductions

15

Java (JDK 10) , 20 ไบต์

v->"{\"\":"+1/.3+"}"

ลองออนไลน์!

เอาท์พุต

{"":3.3333333333333335}

3
Java เป็นภาษาสุดท้ายที่ผมคาดว่าจะเกิน+ที่จะString.concat>: ^ (
แมว

3
@cat ใช่มันเป็นเพียงโอเวอร์โหลดที่มีอยู่จริง สิ่งที่มันไม่ได้เกินพิกัดString.concat! หากคุณตรวจสอบ bytecode นี้เป็นสิ่งที่ Java ()->new StringBuilder("{\"\":").append(1/.3).append("}").toString()รวบรวมเป็น: นอกจากนี้ไม่ต้องกังวลนี่ยังเป็นคำตอบที่ยาวที่สุดในหน้านี้ห้ามใช้ Brainfuck และ Java 7 ดังนั้น Java จึงมีอันดับ;)
Olivier Grégoire

14

PHP, 14 13 ไบต์

{"":<?=M_E?>}

พิมพ์วัตถุ mathsy ที่ดีที่ใคร ๆ ก็สามารถทำเป็นว่ามีประโยชน์ :

{"":2.718281828459}

ใช้ความจริงที่ว่า php พิมพ์อะไรก็ได้นอกแท็กคำต่อคำเพื่อบันทึกในเครื่องหมายคำพูดบางคำนั่นM_Eเป็นค่าคงที่ที่สั้นที่สุดที่ฉันสามารถหาได้

แก้ไข: บันทึกหนึ่งไบต์ต้องขอขอบคุณ Lynn น่าเศร้าที่มันไม่ใช่วัตถุทางคณิตศาสตร์ที่ 'ดี' อีกต่อไป


""เป็นคีย์ JSON ที่ถูกต้อง
ลินน์

14

JavaScript, 17 15 ไบต์

ขอบคุณ @Neil สำหรับสิ่งนี้ โทรโดยไม่มีอินพุต

_=>`{"${_}":0}`

เอาท์พุท {"undefined":0}

รุ่นเก่า 16 ไบต์

ขอบคุณ @ kamoroso94 สำหรับ -1 ในรุ่นนี้

_=>`{"":${9e9}}`

เอาท์พุท {"":9000000000}


คุณสามารถเปลี่ยนสิ่งนี้ให้เป็นฟังก์ชั่นลูกศรเพื่อลบ 4 ไบต์
DanTheMan

1
คุณมีรหัสว่างได้ไหม (เช่นลบa)
Conor O'Brien

_=>`{"a":${_}}`ผลลัพธ์ใน{"a":undefined}ซึ่งเท่ากับ 15 ตัวอักษร พบว่าคุณไม่ได้ใช้อินพุตใด ๆ เมื่อเรียกใช้ฟังก์ชันนี้
Bassdrop Cumberwubwubwub

1
@BassdropCumberwubwubwub บังเอิญรหัสของคุณก็คือ 15 ตัวอักษร ผมไม่แน่ใจว่าundefinedเป็นค่าที่ถูกต้องใน JSON _=>`{"${_}":0}`แต่ที่ได้รับการแก้ไขได้อย่างง่ายดายด้วยการทำให้ชื่อคุณสมบัติและการใช้ค่าเป็นศูนย์:
Neil

3
ลบ the aเพื่อทำให้คีย์เป็นสตริงว่างซึ่งเป็นคีย์ที่ถูกต้องใน JSON น้อยกว่า 1 ไบต์
kamoroso94

12

Brainfuck, 50 ไบต์

+[+<---[>]>+<<+]>>+.>>>--.<+++<[->.<]>>.<+.-.<<++.

{"999999999999999999999999999999999999999999999999999999999999999999999999999999999":9}เอาท์พุท ถือว่าล่ามที่มีเซลล์ 8 บิตและไม่ได้ จำกัด อยู่ทางด้านซ้าย ลองออนไลน์!


11

Pyth - 5 ไบต์

{"'abcdefghijklmnopqrstuvwxyz'": 10}พิมพ์

XH`GT

ลองมันออนไลน์ได้ที่นี่


JSON อนุญาตราคาสองเท่าอย่างโชคไม่ดี
Downgoat

@ Downgoat ah, แก้ไขหนึ่งไบต์
Maltysen

@ ลงการแก้ไขแล้ว
Maltysen


9

Pyth, 7 ไบต์

.d],`G0

สร้างพจนานุกรมที่มีคีย์"'abcdefghijklmnopqrstuvwxyz'"และค่าเดียว0:

.d         Dictionary from:
  ]         The single-element list containing:
   ,         The two-element list containing:
    `G        The representation of the alphabet (the key)
      0       and 0 (the value)
          Implicitly print the stringification of this.


8

///, 15 14 ตัวอักษร

/a/{":1234}/aa

(อย่างน้อยผลลัพธ์คือ1 2 ตัวอักษรยาวเกินรหัส)

ลองออนไลน์!

ขอบคุณที่:

  • ETHProductionsสำหรับการนำตัวคั่นวัตถุมาใช้ใหม่เป็นส่วนหนึ่งของคีย์ (อักขระ -1 ตัว)

วิ่งตัวอย่าง:

bash-4.3$ slashes.pl <<< '/a/{":1234}/aa'
{":1234}{":1234}

เพียงเพื่อให้อ่านง่ายขึ้น:

bash-4.3$ slashes.pl <<< '/a/{":1234}/aa' | jq ''
{
  ":1234}{": 1234
}

1
นั่นเป็นวิธีที่ชาญฉลาดในการบันทึกไบต์ :-)
ETHproductions

2
คุณสามารถบันทึกอีกอันด้วย/a/{":1234}/aa(เอาท์พุท{":1234}{":1234})
ETHproductions

น่าทึ่ง @ETHproductions ขอบคุณ
จัดการ

7

R, 19 ไบต์

cat('{"',lh,'":1}')

\"กลายเป็นอีกนิดเพราะความจำเป็นที่จะหลบหนีคำพูด นอกจากนี้ยังlhเป็นหนึ่งในชุดข้อมูลในตัวRและเป็น (กับความรู้ของฉัน) วัตถุที่มีชื่อสั้นที่สุดที่มี 9 ตัวอักษรที่จำเป็นในการเติมความยาวของคีย์ (แก้ไข: เปิดออกpiเป็นเคล็ดลับเช่นเดียวกับตัวเลือกมาตรฐานและฉันถูก @JDL ซึ่งฉลาดพอที่จะหลบหนีโดยใช้เครื่องหมายคำพูดเดียวแทนที่จะเป็นเครื่องหมายแบ็กสแลชเสริม)

คำอธิบายของlhในเอกสาร R- คือ:

อนุกรมเวลาปกติให้ฮอร์โมน luteinizing ในตัวอย่างเลือดในช่วงเวลา 10 นาทีจากหญิงมนุษย์ 48 ตัวอย่าง

ซึ่งเป็นชื่อที่ค่อนข้างคาดไม่ถึงของคีย์ แต่เดี๋ยวก่อนมันทำงานและผลิตผลลัพธ์:

{" 2.4 2.4 2.4 2.2 2.1 1.5 2.3 2.3 2.5 2 1.9 1.7 2.2 1.8 3.2 3.2 2.7 2.2 2.2 1.9 1.9 1.8 2.7 3 2.3 2 2 2.9 2.9 2.7 2.7 2.3 2.6 2.4 1.8 1.7 1.5 1.4 2.1 3.3 3.5 3.5 3.1 2.6 2.1 3.4 3 2.9 ":1}

คำตอบสามารถเปรียบเทียบกับการเติมคีย์ด้วยตัวอักษร "สุ่ม" เพื่อให้เอาต์พุตอย่างน้อย 15 อักขระ (24 ไบต์):

cat("{\"HeloWorld\":1}")

1
คุณสามารถหลีกเลี่ยงแบ็กสแลชที่หลบหนีได้โดยใช้เครื่องหมายคำพูดเดี่ยวในนิพจน์ R: cat('{"',lh,'":1}')ตามที่ฉันทำด้านบน (แม้ว่าฉันจะใช้piแทนlh) ในการค้นหาตัวแปรสองตัวอักษรฉันพบฟังก์ชันelที่ฉันไม่เคยรู้มาก่อน อาจเป็นประโยชน์ในอนาคต ...
JDL

7

PowerShell 22 20 14 ไบต์

'{"":'+1tb+'}'

เอาท์พุต

{"":1099511627776}

การใช้ค่าคงที่ที่กำหนดไว้สำหรับ 1TB ในไบต์เพื่อให้ถึงขีด จำกัด ของอักขระและค่าของจำนวนเต็มคงที่เพื่อสร้างสำหรับ json ที่ถูกต้อง ขอบคุณ TimmyD สำหรับการลดตัวอักษร 5 โดยการลบความซ้ำซ้อน


โพสต์ก่อนหน้านี้ 40 ไบต์

"{$((1..9|%{'"{0}":{0}'-f$_})-join",")}"

เอาท์พุต

{"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9}

รับอาร์เรย์จำนวนเต็มและสร้างคู่คีย์ - ค่าสำหรับแต่ละรายการ เข้าร่วมกับจุลภาคและห่อด้วยชุดเครื่องมือจัดฟันแบบหยิก



6

เรติน่า 11 ไบต์

 
{"9$*R":1}

เอาท์พุต

{"RRRRRRRRR":1}

หมายเหตุ: newline ชั้นนำมีความสำคัญเนื่องจากไม่มีสิ่งใดถูกแทนที่ด้วยผลลัพธ์ผลลัพธ์ฉันใช้พื้นที่ที่ไม่ทำลายเพื่ออธิบายสิ่งนี้!

ลองออนไลน์!


5

V , 9 ไบต์

i{"¹*":0}

ลองออนไลน์!

ตรงไปตรงมามาก เข้าสู่โหมดแทรกแล้วป้อนข้อความต่อไปนี้:

{"*********":0}

เหตุผลนี้สั้นมากเพราะ¹ทำซ้ำอักขระต่อไปนี้ 9 ครั้ง


ฉันคาดหวังว่า 0 ไบต์: P
Maltysen

1
@maltysen ฉันโพสต์ไว้ ฉันลบมันเพราะใช้คำพูดเดียวแทนที่จะเป็นสองเท่า ... :(
DJMcMayhem

5

JavaScript (ES6) + jQuery, 15 ไบต์

เพราะ jQuery

_=>`{"${$}":0}`

เอาต์พุต{"function (a,b){return new n.fn.init(a,b)}":0}เมื่อถูกเรียก ลองที่นี่:


1
การมอบหมายคือการส่งออกบางสิ่งบางอย่าง โดยที่alert()คุณไม่ได้แสดงผลอะไร
nl-x

1
@ nl-x OP ได้แก้ไขเพื่อชี้แจงว่าอนุญาตให้ใช้ฟังก์ชันที่ส่งคืนสตริงได้
ETHproductions

5

Dyalog APL ขนาด 9 ไบต์

JSONDMX

ลองออนไลน์!

ในพื้นที่ทำงานที่สะอาดบนพีซีของฉันผลลัพธ์คือ

{"Category":"","DM":[],"EM":"","EN":0,"ENX":0,"HelpURL":"","InternalLocation":["",0],"Message":"","OSError":[0,0,""],"Vendor":""}

⎕JSON แปลงเป็น JSON

⎕DMX (ใช้ได้ในระดับสากล) D iagnostic M essage E x tended object


4

brainfuck, 83 ไบต์

--[-->+++++<]>.+[---->+<]>+++.>-[>+<-----]>.........<<.[----->+<]>.>.>--[-->+++<]>.

เอาท์พุท {"333333333":3}

อาจเป็นอีกวิธีที่สั้นกว่า แต่ฉันยังไม่พบ

คำอธิบาย:

--[-->+++++<]>. {
+[---->+<]>+++. "
>-[>+<-----]>.  3
........
<<.             "
[----->+<]>.    :
>.              3
>--[-->+++<]>.  }

ลองออนไลน์


4

PHP, 19 ไบต์

<?='{"'.(9**9).'":1}';

เอาท์พุท: {"387420489":1}

https://eval.in/665889

ขอบคุณmanatworkสำหรับคำแนะนำ!


1
เอาต์พุตของคุณมีความยาว 16 ตัวอักษรในขณะที่ความต้องการคือ 15 ดังนั้นทำไมไม่ลบ“ H” ออก?
จัดการ

BTW ตั้งแต่ PHP 5.6 มี**ผู้ประกอบการ: →pow(9,9) (9**9)
จัดการ

1
15 ตัวอักษร (ไม่ใช่ PHP จริงๆ):{"<?=9**9?>":1}
Loovjo

4

Java 7, 36 ไบต์

String c(){return"{\"a\":"+1e6+"}";}

Java 8, 21 ไบต์

()->"{\"a\":"+1e6+"}"

Ungolfed & รหัสการทดสอบ:

ลองที่นี่

class M{
  static String c(){
    return "{\"a\":" + 1e6 + "}";
  }

  public static void main(String[] a){
    System.out.println(c());
  }
}

เอาท์พุท (ความยาว 15):

{"a":1000000.0}

วิธีที่สองให้ข้อผิดพลาด
Numberknot

1
"ความยาวแตกต่างกันระหว่าง 15 และ 16 ทั้งนี้ขึ้นอยู่กับแฮช" ในทางเทคนิคแฮชสามารถมีความยาวน้อยได้1( ดูSystem.identityHashCode(Object) )
Olivier Grégoire

1
นอกจากนี้คุณสามารถเล่นกอล์ฟ 1 ไบต์โดยใช้""เป็นคีย์และ1e7ค่า ""เป็นรหัสที่ถูกต้องเมื่อพยายามในตัวตรวจสอบ
Olivier Grégoire

2
@ OlivierGrégoireตกลงฉันจะลบthisรหัส สำหรับ""กับการ1e7ที่จะไม่ทำงานที่น่าเสียดาย 1e6เอาท์พุท1000000.0แต่1e7เอาท์พุท1.0E7แทน
Kevin Cruijssen

1
โอ้ความผิดพลาดของฉันฉันไม่ได้ตรวจสอบ
Olivier Grégoire

4

R, 19 ไบต์

ใช้งานได้ในภาษาอังกฤษแบบอังกฤษ มันอาจต้อง +2 ไบต์ในคนอื่น ๆ (แก้ไข: อาจไม่เห็นความคิดเห็น)

cat('{"',pi,'":1}')

ฉันหวังว่าจะมีบางสิ่งที่ฉลาด (อาจจะดึงรหัสออกมาจากฟังก์ชั่นที่มีอยู่แล้วq) แต่หาอะไรไม่เจอ ผลลัพธ์:

{" 3.141593 ":1}

โปรดทราบว่าคุณไม่จำเป็นต้องหลีกเลี่ยงอัญประกาศคู่ใน R หากคุณใช้เครื่องหมายคำพูดเดี่ยวเพื่ออ้างอิงสตริง (และในทางกลับกัน) พฤติกรรมนี้ขึ้นอยู่กับสถานที่ ฉันคาดหวังว่ามันจะทำงานในสถานที่ภาษาอังกฤษแบบสหรัฐอเมริกาเช่นกัน

สิ่งนี้ต้องการdigitsตัวเลือกเริ่มต้นของคุณอย่างน้อยหกตัว (ซึ่งเป็นค่าเริ่มต้นจากโรงงาน) และscipenเป็นอย่างน้อย-digits(ค่าเริ่มต้นจากโรงงานคือศูนย์)


1
ขอโทษอะไร? การเปลี่ยนแปลงทางไวยากรณ์ของ R กับสถานที่?
แมว

ใช่ตัวละครที่ต้องหลบหนีขึ้นอยู่กับoptions(quote)ว่าผู้ใช้สามารถระบุได้ แต่ค่าเริ่มต้นคือเท่าที่ฉันรู้ขึ้นอยู่กับสถานที่
JDL

@cat ฉันคิดว่านั่นเป็นความเข้าใจผิด การมีอยู่ของเอกสารoptions('quote') ไม่ได้ เปลี่ยนแปลงไม่มีผลต่อการมองเห็นและแม้ว่าฉันจะพบเจอกับ shenanigans ใน RI มากสงสัยว่าตัวเลือกรันไทม์จะเปลี่ยนวิธีการแยกวิเคราะห์ มันอาจเปลี่ยนผลลัพธ์ของหลักสูตร - แต่ไม่ใช่ในรหัสในคำตอบนี้
Konrad Rudolph

@ Konrad คุณอาจพูดถูก ฉันคิดว่าฉันคิดของ "useFancyQuotes" ซึ่งจะมีผลต่อquote, squoteฯลฯ
JDL

4

ทับทิมขนาด 19 ไบต์

puts'{"1":'+9**9+?}

เอาท์พุท:

{"1":387420489}

@NathanMerrill แก้ไข
dkudriavtsev

1
คุณสามารถแสดงสิ่งที่มันออกมา
อยากรู้อยากเห็น dannii

คุณไม่สามารถบันทึก byte โดยการลบช่องว่างหลังจากputs?
Oliver Ni

ฉันคิดว่า?1*9ยังคงนานพอ
Lee W

@curiousdannii เรียบร้อยแล้ว
dkudriavtsev

3

องค์ประกอบ , 18 ไบต์

\{\"a\"\:`9 9^`\}`

ลองออนไลน์! เอาท์พุท{"a":387420489}

นี่เป็นเพียงสามไบต์ที่สั้นกว่าโซลูชันไร้เดียงสา ครึ่งแรกของการส่งออกเป็นรหัสยาก (ตัวละครการหลบหนีมากเกินไปที่จะทำให้วิธีการใด ๆ ที่เป็นไปได้) ในขณะที่ค่าที่คำนวณได้9^9จะทำให้จำนวนยาวพอ


3

Perl 5, 16 15 ไบต์

ใช้การประทับเวลา unix ของช่วงเวลาที่โปรแกรมเริ่มต้นเป็นเนื้อหาของวัตถุองค์ประกอบเดียว มันจะช่วยให้การส่งออกที่ถูกต้องถ้าคุณใช้มันช้ากว่า 10:46:39 ใน 3 มีนาคม 1973 แต่เนื่องจากเราไม่สามารถย้อนเวลากลับไปในลักษณะที่ถูกต้องได้

say"{\"$^T\":1}"

ใช้ตัวแปร FORMAT_TOP_HANDLE$^STDOUT_TOPที่เริ่มต้นที่

say"{\"$^\":1}";

ทำงานด้วย -Eตั้งค่าสถานะโดยไม่มีค่าใช้จ่ายเพิ่มเติม

perl -E 'say"{\"$^\":1}";'

เอาต์พุตมีความยาว 16 ไบต์

{"STDOUT_TOP":1}

คำตอบขึ้นอยู่กับเวลาของ RIP :(
CalculatorFeline

@CalculatorFeline hu หรือไม่
simbabque

3

Cheddar, 17 14 ไบต์

บันทึกแล้ว 3 ไบต์ขอบคุณ @ ConorO'Brien

->'{":1234}'*2

ฟังก์ชั่นไม่ระบุชื่อที่ส่งคืน{":1234}{":1234}ซึ่งเป็นวัตถุ JSON ที่ถูกต้อง:

{
  ":1234}{": 1234
}

ลองออนไลน์!


3

แบตช์ Windows 10 ไบต์

{"%OS%":5}

ตัวแปรสภาพแวดล้อมOSมีสตริงWindows_NT(ในทุกระบบปฏิบัติการ Windows ตั้งแต่ปี 2000 ตามคำถามนี้ใน Stack Overflow)


@ETHproductions โอ๊ะ
punoz

สิ่งนี้เป็นจริงหรือไม่ คำตอบแบทช์ของนีลทำอย่างแน่นอน แต่จำไม่ได้ว่าเอาท์พุทแบทช์โดยปริยาย
จัดการ

@ manatwork ใช่ตั้งแต่เปิด echo คำสั่งปัจจุบันจะถูก echoed เพื่อประเมินตัวแปร OS ในกระบวนการ
โทษถึง

โอ้ ดังนั้นจริง ๆ แล้วมันพยายามที่จะดำเนินการตามที่{"%OS%":5}มันจะเป็นคำสั่งและคุณได้รับประโยชน์จากคุณสมบัติการติดตามประถม? นั่นเป็นเรื่องยุ่งยาก
จัดการ

@ การจัดการงานใช่แน่นอน
punya

3

HQ9 +, 15 ไบต์

{"Quineland":0}

เอาท์พุตเอง ฉันคิดว่าคำตอบ 8 ไบต์จะเป็นไปได้เช่น:

{":11QQ}

ผลลัพธ์นี้{":11QQ}{":11QQ}ซึ่งเกือบจะ JSON ที่ถูกต้อง แต่11QQไม่ใช่ค่าที่ถูกต้อง

HQ9 + ไม่ใช่ภาษาโปรแกรมที่ถูกต้องตามมาตรฐาน PPCG แต่ OP อนุญาตภาษาที่ไม่ใช่ภาษาโปรแกรม


1
สิ่งนี้ไม่ถูกต้อง การส่งทั้งหมดจะต้องเป็นภาษาการเขียนโปรแกรมที่ถูกต้อง
Mego

นี่คือความซับซ้อน kolmo ส่วนใหญ่ (ส่วนใหญ่เพราะถ้ามันให้ผลลัพธ์ที่แตกต่างออกไปมันก็ยังนับ) ดังนั้นฉันคิดว่านี่น่าจะใช้ได้
Destructible Lemon

@DestructibleWatermelon การใช้ภาษาที่ไม่ใช่การเขียนโปรแกรมเป็นช่องโหว่มาตรฐาน
Mego

@Mego OP ได้อนุญาตให้ใช้ภาษาที่ไม่ใช่ภาษาโปรแกรมอย่างชัดเจนในขณะนี้
ETHproductions
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.