本文整理汇总了Golang中github.com/golang/protobuf/jsonpb.UnmarshalString函数的典型用法代码示例。如果您正苦于以下问题:Golang UnmarshalString函数的具体用法?Golang UnmarshalString怎么用?Golang UnmarshalString使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了UnmarshalString函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: testABELookup
func testABELookup(t *testing.T) {
url := "http://localhost:8080/v1/example/a_bit_of_everything"
cresp, err := http.Post(url, "application/json", strings.NewReader(`
{"bool_value": true, "string_value": "strprefix/example"}
`))
if err != nil {
t.Errorf("http.Post(%q) failed with %v; want success", url, err)
return
}
defer cresp.Body.Close()
buf, err := ioutil.ReadAll(cresp.Body)
if err != nil {
t.Errorf("iotuil.ReadAll(cresp.Body) failed with %v; want success", err)
return
}
if got, want := cresp.StatusCode, http.StatusOK; got != want {
t.Errorf("resp.StatusCode = %d; want %d", got, want)
t.Logf("%s", buf)
return
}
var want gw.ABitOfEverything
if err := jsonpb.UnmarshalString(string(buf), &want); err != nil {
t.Errorf("jsonpb.UnmarshalString(%s, &want) failed with %v; want success", buf, err)
return
}
url = fmt.Sprintf("%s/%s", url, want.Uuid)
resp, err := http.Get(url)
if err != nil {
t.Errorf("http.Get(%q) failed with %v; want success", url, err)
return
}
defer resp.Body.Close()
buf, err = ioutil.ReadAll(resp.Body)
if err != nil {
t.Errorf("ioutil.ReadAll(resp.Body) failed with %v; want success", err)
return
}
var msg gw.ABitOfEverything
if err := jsonpb.UnmarshalString(string(buf), &msg); err != nil {
t.Errorf("jsonpb.UnmarshalString(%s, &msg) failed with %v; want success", buf, err)
return
}
if got := msg; !reflect.DeepEqual(got, want) {
t.Errorf("msg= %v; want %v", &got, &want)
}
if got, want := resp.Header.Get("Grpc-Metadata-Uuid"), want.Uuid; got != want {
t.Errorf("Grpc-Metadata-Uuid was %s, wanted %s", got, want)
}
}
开发者ID:tmc,项目名称:grpc-gateway,代码行数:54,代码来源:integration_test.go
示例2: MaybeExtractQ
// MaybeExtractQ extracts proto from HTTP request and returns it.
// Nil indicates failure, and appropriate status / description is written
// to response.
func MaybeExtractQ(w http.ResponseWriter, r *http.Request, defaultQ proto.Message) *proto.Message {
q := proto.Clone(defaultQ)
if r.Method == "POST" {
reqBody, err := ioutil.ReadAll(r.Body)
if err != nil {
fmt.Fprintf(w, "Failed to read POST body %v", err)
return nil
}
err = proto.Unmarshal(reqBody, q)
if err != nil {
fmt.Fprintf(w, "Failed to parse POST body as binary proto: %v", err)
return nil
}
} else {
err := r.ParseForm()
if err != nil {
http.NotFound(w, r)
fmt.Fprintf(w, "strange query %v", err)
return nil
}
pb := r.Form.Get("pb")
if pb == "" {
http.NotFound(w, r)
fmt.Fprintf(w, "Non-empty jsonpb-encoded pb param required for GET")
return nil
}
err = jsonpb.UnmarshalString(pb, q)
if err != nil {
fmt.Fprintf(w, "Failed to parse pb param %v", err)
return nil
}
}
return &q
}
开发者ID:xanxys,项目名称:bonsai,代码行数:37,代码来源:main.go
示例3: decodeFrontendState
func decodeFrontendState(encodedFrontendState string) (*FrontendState, error) {
var frontendState FrontendState
if err := jsonpb.UnmarshalString(encodedFrontendState, &frontendState); err != nil {
return nil, err
}
return &frontendState, nil
}
开发者ID:tv42,项目名称:pachyderm,代码行数:7,代码来源:sharder.go
示例4: decodeServerRole
func decodeServerRole(encodedServerRole string) (*proto.ServerRole, error) {
var serverRole proto.ServerRole
if err := jsonpb.UnmarshalString(encodedServerRole, &serverRole); err != nil {
return nil, err
}
return &serverRole, nil
}
开发者ID:bereal,项目名称:pachyderm,代码行数:7,代码来源:discovery_addresser.go
示例5: testEcho
func testEcho(t *testing.T, port int, contentType string) {
url := fmt.Sprintf("http://localhost:%d/v1/example/echo/myid", port)
resp, err := http.Post(url, "application/json", strings.NewReader("{}"))
if err != nil {
t.Errorf("http.Post(%q) failed with %v; want success", url, err)
return
}
defer resp.Body.Close()
buf, err := ioutil.ReadAll(resp.Body)
if err != nil {
t.Errorf("iotuil.ReadAll(resp.Body) failed with %v; want success", err)
return
}
if got, want := resp.StatusCode, http.StatusOK; got != want {
t.Errorf("resp.StatusCode = %d; want %d", got, want)
t.Logf("%s", buf)
}
var msg gw.SimpleMessage
if err := jsonpb.UnmarshalString(string(buf), &msg); err != nil {
t.Errorf("jsonpb.UnmarshalString(%s, &msg) failed with %v; want success", buf, err)
return
}
if got, want := msg.Id, "myid"; got != want {
t.Errorf("msg.Id = %q; want %q", got, want)
}
if value := resp.Header.Get("Content-Type"); value != contentType {
t.Errorf("Content-Type was %s, wanted %s", value, contentType)
}
}
开发者ID:tmc,项目名称:grpc-gateway,代码行数:32,代码来源:integration_test.go
示例6: decodeServerState
func decodeServerState(encodedServerState string) (*ServerState, error) {
var serverState ServerState
if err := jsonpb.UnmarshalString(encodedServerState, &serverState); err != nil {
return nil, err
}
return &serverState, nil
}
开发者ID:tv42,项目名称:pachyderm,代码行数:7,代码来源:sharder.go
示例7: main
func main() {
const input = `{"create_request": {"key": "Zm9v"}}`
var protoReq etcdserverpb.WatchRequest
if err := jsonpb.UnmarshalString(input, &protoReq); err != nil {
log.Fatal(err)
}
fmt.Printf("success with %+v\n", protoReq.RequestUnion)
}
开发者ID:gyuho,项目名称:learn,代码行数:8,代码来源:main.go
示例8: main
func main() {
const input = `{"key": "Zm9v", "type": "READ"}`
var req WatchCreateRequest
if err := jsonpb.UnmarshalString(input, &req); err != nil {
log.Fatal(err)
}
fmt.Printf("success with %+v\n", req)
// success with {Key:[102 111 111] Type:READ}
}
开发者ID:gyuho,项目名称:learn,代码行数:9,代码来源:main.go
示例9: main
func main() {
const input = `{"create_request": {"key": "Zm9v"}}`
var req WatchRequest
if err := jsonpb.UnmarshalString(input, &req); err != nil {
log.Fatal(err)
// unknown field "create_request" in main.WatchRequest
}
fmt.Printf("success with %+v\n", req.RequestUnion)
}
开发者ID:gyuho,项目名称:learn,代码行数:9,代码来源:main.go
示例10: testAdditionalBindings
func testAdditionalBindings(t *testing.T) {
for i, f := range []func() *http.Response{
func() *http.Response {
url := "http://localhost:8080/v1/example/a_bit_of_everything/echo/hello"
resp, err := http.Get(url)
if err != nil {
t.Errorf("http.Get(%q) failed with %v; want success", url, err)
return nil
}
return resp
},
func() *http.Response {
url := "http://localhost:8080/v2/example/echo"
resp, err := http.Post(url, "application/json", strings.NewReader(`"hello"`))
if err != nil {
t.Errorf("http.Post(%q, %q, %q) failed with %v; want success", url, "application/json", `"hello"`, err)
return nil
}
return resp
},
func() *http.Response {
url := "http://localhost:8080/v2/example/echo?value=hello"
resp, err := http.Get(url)
if err != nil {
t.Errorf("http.Get(%q) failed with %v; want success", url, err)
return nil
}
return resp
},
} {
resp := f()
if resp == nil {
continue
}
defer resp.Body.Close()
buf, err := ioutil.ReadAll(resp.Body)
if err != nil {
t.Errorf("iotuil.ReadAll(resp.Body) failed with %v; want success; i=%d", err, i)
return
}
if got, want := resp.StatusCode, http.StatusOK; got != want {
t.Errorf("resp.StatusCode = %d; want %d; i=%d", got, want, i)
t.Logf("%s", buf)
}
var msg sub.StringMessage
if err := jsonpb.UnmarshalString(string(buf), &msg); err != nil {
t.Errorf("jsonpb.UnmarshalString(%s, &msg) failed with %v; want success; %d", buf, err, i)
return
}
if got, want := msg.GetValue(), "hello"; got != want {
t.Errorf("msg.GetValue() = %q; want %q", got, want)
}
}
}
开发者ID:tmc,项目名称:grpc-gateway,代码行数:56,代码来源:integration_test.go
示例11: MapToProto
func MapToProto(in map[string]interface{}, pb proto.Message, idFix bool) {
if idFix {
if _, ok := in["_id"]; ok {
in["id"] = in["_id"]
delete(in, "_id")
}
}
s, _ := json.Marshal(in)
proto_json.UnmarshalString(string(s), pb)
}
开发者ID:kellrott,项目名称:agro,代码行数:10,代码来源:util.go
示例12: ReadJSONBody
// ReadJSONBody reads the entire body of r and unmarshals it from JSON into msg.
// If the request body is empty, no error is returned and msg is unchanged.
func ReadJSONBody(r *http.Request, msg proto.Message) error {
rec, err := ioutil.ReadAll(r.Body)
if err != nil {
return fmt.Errorf("body read error: %v", err)
}
if len(rec) == 0 {
return nil
}
return jsonpb.UnmarshalString(string(rec), msg)
}
开发者ID:jwatt,项目名称:kythe,代码行数:12,代码来源:web.go
示例13: getMessageByID
func (c *rethinkClient) getMessageByID(term gorethink.Term, id string, message proto.Message) error {
cursor, err := term.Get(id).ToJSON().Run(c.session)
if err != nil {
return err
}
data := ""
if !cursor.Next(&data) {
return cursor.Err()
}
if err := jsonpb.UnmarshalString(data, message); err != nil {
return err
}
return nil
}
开发者ID:sr,项目名称:pachyderm,代码行数:14,代码来源:rethink_client.go
示例14: getMessageByPrimaryKey
func (a *rethinkAPIServer) getMessageByPrimaryKey(table Table, value interface{}, message proto.Message) error {
cursor, err := a.getTerm(table).Get(value).Default(gorethink.Error("value not found")).ToJSON().Run(a.session)
if err != nil {
return err
}
data := ""
if !cursor.Next(&data) {
return cursor.Err()
}
if err := jsonpb.UnmarshalString(data, message); err != nil {
return err
}
return nil
}
开发者ID:klucar,项目名称:pachyderm,代码行数:14,代码来源:rethink_api_server.go
示例15: testABEList
func testABEList(t *testing.T) {
url := "http://localhost:8080/v1/example/a_bit_of_everything"
resp, err := http.Get(url)
if err != nil {
t.Errorf("http.Get(%q) failed with %v; want success", url, err)
return
}
defer resp.Body.Close()
dec := json.NewDecoder(resp.Body)
var i int
for i = 0; ; i++ {
var item struct {
Result json.RawMessage `json:"result"`
Error map[string]interface{} `json:"error"`
}
err := dec.Decode(&item)
if err == io.EOF {
break
}
if err != nil {
t.Errorf("dec.Decode(&item) failed with %v; want success; i = %d", err, i)
}
if len(item.Error) != 0 {
t.Errorf("item.Error = %#v; want empty; i = %d", item.Error, i)
continue
}
var msg gw.ABitOfEverything
if err := jsonpb.UnmarshalString(string(item.Result), &msg); err != nil {
t.Errorf("jsonpb.UnmarshalString(%s, &msg) failed with %v; want success", item.Result, err)
}
}
if i <= 0 {
t.Errorf("i == %d; want > 0", i)
}
value := resp.Header.Get("Grpc-Metadata-Count")
if value == "" {
t.Errorf("Grpc-Header-Count should not be empty")
}
count, err := strconv.Atoi(value)
if err != nil {
t.Errorf("failed to Atoi %q: %v", value, err)
}
if count <= 0 {
t.Errorf("count == %d; want > 0", count)
}
}
开发者ID:tmc,项目名称:grpc-gateway,代码行数:50,代码来源:integration_test.go
示例16: testABECreate
func testABECreate(t *testing.T) {
want := gw.ABitOfEverything{
FloatValue: 1.5,
DoubleValue: 2.5,
Int64Value: 4294967296,
Uint64Value: 9223372036854775807,
Int32Value: -2147483648,
Fixed64Value: 9223372036854775807,
Fixed32Value: 4294967295,
BoolValue: true,
StringValue: "strprefix/foo",
Uint32Value: 4294967295,
Sfixed32Value: 2147483647,
Sfixed64Value: -4611686018427387904,
Sint32Value: 2147483647,
Sint64Value: 4611686018427387903,
NonConventionalNameValue: "camelCase",
}
url := fmt.Sprintf("http://localhost:8080/v1/example/a_bit_of_everything/%f/%f/%d/separator/%d/%d/%d/%d/%v/%s/%d/%d/%d/%d/%d/%s", want.FloatValue, want.DoubleValue, want.Int64Value, want.Uint64Value, want.Int32Value, want.Fixed64Value, want.Fixed32Value, want.BoolValue, want.StringValue, want.Uint32Value, want.Sfixed32Value, want.Sfixed64Value, want.Sint32Value, want.Sint64Value, want.NonConventionalNameValue)
resp, err := http.Post(url, "application/json", strings.NewReader("{}"))
if err != nil {
t.Errorf("http.Post(%q) failed with %v; want success", url, err)
return
}
defer resp.Body.Close()
buf, err := ioutil.ReadAll(resp.Body)
if err != nil {
t.Errorf("iotuil.ReadAll(resp.Body) failed with %v; want success", err)
return
}
if got, want := resp.StatusCode, http.StatusOK; got != want {
t.Errorf("resp.StatusCode = %d; want %d", got, want)
t.Logf("%s", buf)
}
var msg gw.ABitOfEverything
if err := jsonpb.UnmarshalString(string(buf), &msg); err != nil {
t.Errorf("jsonpb.UnmarshalString(%s, &msg) failed with %v; want success", buf, err)
return
}
if msg.Uuid == "" {
t.Error("msg.Uuid is empty; want not empty")
}
msg.Uuid = ""
if got := msg; !reflect.DeepEqual(got, want) {
t.Errorf("msg= %v; want %v", &got, &want)
}
}
开发者ID:tmc,项目名称:grpc-gateway,代码行数:50,代码来源:integration_test.go
示例17: testEchoBody
func testEchoBody(t *testing.T) {
sent := gw.SimpleMessage{Id: "example"}
var m jsonpb.Marshaler
payload, err := m.MarshalToString(&sent)
if err != nil {
t.Fatalf("m.MarshalToString(%#v) failed with %v; want success", payload, err)
}
url := "http://localhost:8080/v1/example/echo_body"
resp, err := http.Post(url, "", strings.NewReader(payload))
if err != nil {
t.Errorf("http.Post(%q) failed with %v; want success", url, err)
return
}
defer resp.Body.Close()
buf, err := ioutil.ReadAll(resp.Body)
if err != nil {
t.Errorf("iotuil.ReadAll(resp.Body) failed with %v; want success", err)
return
}
if got, want := resp.StatusCode, http.StatusOK; got != want {
t.Errorf("resp.StatusCode = %d; want %d", got, want)
t.Logf("%s", buf)
}
var received gw.SimpleMessage
if err := jsonpb.UnmarshalString(string(buf), &received); err != nil {
t.Errorf("jsonpb.UnmarshalString(%s, &msg) failed with %v; want success", buf, err)
return
}
if got, want := received, sent; !reflect.DeepEqual(got, want) {
t.Errorf("msg.Id = %q; want %q", got, want)
}
if got, want := resp.Header.Get("Grpc-Metadata-Foo"), "foo1"; got != want {
t.Errorf("Grpc-Header-Foo was %q, wanted %q", got, want)
}
if got, want := resp.Header.Get("Grpc-Metadata-Bar"), "bar1"; got != want {
t.Errorf("Grpc-Header-Bar was %q, wanted %q", got, want)
}
if got, want := resp.Trailer.Get("Grpc-Trailer-Foo"), "foo2"; got != want {
t.Errorf("Grpc-Trailer-Foo was %q, wanted %q", got, want)
}
if got, want := resp.Trailer.Get("Grpc-Trailer-Bar"), "bar2"; got != want {
t.Errorf("Grpc-Trailer-Bar was %q, wanted %q", got, want)
}
}
开发者ID:tmc,项目名称:grpc-gateway,代码行数:49,代码来源:integration_test.go
示例18: GetPipelineRun
func (c *rethinkClient) GetPipelineRun(id string) (*pps.PipelineRun, error) {
cursor, err := c.pipelineRuns.Get(id).ToJSON().Run(c.session)
if err != nil {
return nil, err
}
data := ""
if !cursor.Next(&data) {
return nil, cursor.Err()
}
var pipelineRun pps.PipelineRun
if err := jsonpb.UnmarshalString(data, &pipelineRun); err != nil {
return nil, err
}
return &pipelineRun, nil
}
开发者ID:sr,项目名称:pachyderm,代码行数:15,代码来源:rethink_client.go
示例19: getAddresses
func (a *discoveryAddresser) getAddresses(version int64) (*proto.Addresses, error) {
if version == InvalidVersion {
return nil, fmt.Errorf("invalid version")
}
if addresses, ok := a.addresses[version]; ok {
return addresses, nil
}
encodedAddresses, err := a.discoveryClient.Get(a.addressesKey(version))
if err != nil {
return nil, err
}
var addresses proto.Addresses
if err := jsonpb.UnmarshalString(encodedAddresses, &addresses); err != nil {
return nil, err
}
return &addresses, nil
}
开发者ID:sr,项目名称:pachyderm,代码行数:17,代码来源:discovery_addresser.go
示例20: GetAllPipelineSources
func (c *rethinkClient) GetAllPipelineSources() ([]*pps.PipelineSource, error) {
cursor, err := c.pipelineSources.ToJSON().Run(c.session)
if err != nil {
return nil, err
}
var pipelineSources []*pps.PipelineSource
data := ""
for cursor.Next(&data) {
var pipelineSource pps.PipelineSource
if err := jsonpb.UnmarshalString(data, &pipelineSource); err != nil {
return nil, err
}
pipelineSources = append(pipelineSources, &pipelineSource)
data = ""
}
return pipelineSources, cursor.Err()
}
开发者ID:sr,项目名称:pachyderm,代码行数:17,代码来源:rethink_client.go
注:本文中的github.com/golang/protobuf/jsonpb.UnmarshalString函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论