2016-05-24 4 views
1

Ich habe eine Scheibe von Bytes, die ein Json-Objekt enthält, das in curlybrackets mit einigen führenden Zeichen variabler Länge enthalten ist. Ich muss die führenden Zeichen abschneiden, bis der erste curlybracket gefunden wird. Wie kann ich das machen? Unten ist ein Code, nur um eine Vorstellung davon zu geben, wie ich es aussehen möchte, die "somefunction()" ist die Funktion, von der ich hoffe, dass mir jemand davon erzählen kann.GOLANG Trimmen von führenden Zeichen aus Byteslice, bis ein spezifisches Zeichen gefunden wird

var b = []byte("I want this removed {here is some json}") 
a := somefunction(b, "{") 
fmt.Println(string(a)) // desired output: {here is some json} 

Antwort

8

Finden Sie den ersten Index des Rune '{' in den Byte-Scheiben schneiden und wieder Scheibe b. Die bytes Paket solche Funktionen:

var b = []byte("I want this removed {here is some json}") 
b = b[bytes.IndexRune(b, '{'):] 
fmt.Println(string(b)) 
# {here is some json} 

Go Playground

+0

Vielen Dank für die Antwort :) –

3

Finden Sie den Index der ersten Klammer. Dann können Sie strings.substring verwenden, oder Sie können Ihren Byte-Array in Scheiben schneiden:

var b = []byte("I want this removed {here is some json}") 
i := strings.Index(string(b), "{") 
fmt.Println(string(b[i:])) 

https://play.golang.org/p/FFFPJEbnLj

+0

Vielen Dank für die Antwort :) –

Verwandte Themen