doumowu7371 2013-07-04 10:03
浏览 118
已采纳

不能在函数参数中使用document [0](uint8类型)作为[] byte类型

I'm trying to get a JSON string pulled from a document and into SimpleJson in GOlang, though I've run into a problem with the types (again..)

I get the following error:

cannot use document[0] (type uint8) as type []byte in function argument

and the line which bugs up is:

js, err := simplejson.NewJson(document[0])

Could anyone please help me fix this, and also is there a good place I can read up about types and conversions? Having come from php which has no types and python where the conversions are simple, GO is a bit confusing on this front.

Thanks :-)

  • 写回答

1条回答 默认 最新

  • doude4201 2013-07-04 10:54
    关注

    First of all, uint8 is simply an alias for byte. Therefor []uint8 is the same as []byte.

    What the error message tells you is that document[0] is of type uint8 and not []byte

    From your comment it is clear that document is a string. You should just convert it to []byte. If the JSON data in itself contains an array, you must first parse the document (pass it to NewJson) before you can retrieve the first value of the JSON array.

    So, instead change your code to:

    js, err := simplejson.NewJson([]byte(document))
    // error testing
    jsonArray, err := js.Array()
    // more error testing
    fmt.Println(jsonArray[0])
    

    (I assume you have imported the github.com/xiocode/toolkit/simplejson package. The only one I could find with simplejson.NewJson)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 51寻迹小车定点寻迹
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含