[RUBY] Anders als bei JSON

Ich habe rspec mit JSON Matcher geschrieben, aber ich wusste nicht, was anders ist, da es viele Elemente von JSON gibt.

a.rb


#!/usr/bin/env ruby

def main
  ARGF.each do |line|
    line.match(/expected (.*) to be JSON matching (.*)/) do |m|
      e, r = m[1, 2]
      r.gsub!(/(At=>)([^"](?:[^,]+|,[^]|,[^:])+)(,:)/) do
        "#{$1}\"#{$2}\"#{$3}"
      end
      r.gsub!(/(\(an instance of String\))/, "\"\\1\"")
      r = eval(r)
      puts e
      puts r.to_json
    end
  end
end

main
$ rspec aaa_spec.rb:xxx >! out
$ ./a.rb out | jq -s '.[0]' >! b
$ ./a.rb out | jq -s '.[1]' >! c
$ vimdiff b c

Ich habe versucht, es so zu schreiben, aber am Ende habe ich einen Teilkratzer gefunden und die Ursache identifiziert.

Lassen Sie uns einen Artikel schreiben und einen Gedenkgottesdienst machen.

Nachtrag

Es endete so

$ perl -lne 'm/^\s+[+-]/ and do { s/^\s+-/e = {/; s/^\s+\+/r = {/; s/,$/}/; s/(At=>)([^"][^,]+)(, :)/\1"\2"\3/g; s/(=>)(\([^)]+\))(,)/\1"\2"\3/g; s/\(contain exactly /[/g and do { s/([}\]"\d])\)/\1]/g; s/ and /, /g;}; print};BEGIN{print"#!/usr/bin/env ruby\nrequire '"'"'json'"'"'\n"}END{print "puts e.to_json\nputs r.to_json"}'

Recommended Posts

Anders als bei JSON
Importieren Sie JSON mit SolrJ
Validierung von JSON mit JSON-Schema
Behandeln Sie JSON mit minimal-json
Formatieren Sie JSON mit org.json
[Java] JSON-Kommunikation mit Jackson
Behandeln Sie JSON mühelos mit Alamofires Antwort Json
Wenden Sie den Matching-Prozess für reguläre Ausdrücke mit JSON Sassert an
Behandeln Sie große JSON mit Java Lambda
JSON-Vergleich
Konvertieren Sie mit Ruby von JSON nach TSV und von TSV nach JSON
Erstellen Sie eine JSON-API, die die RSA-Verschlüsselung mit Wicket unterstützt
Durchsuchen Sie JPQL nach Tabellen mit Spalten vom Typ JSON
JSON mit Java und Jackson Teil 2 XSS-Maßnahmen
Behandeln Sie JSON domänenübergreifend mit Play Framework