func init() { var err error styleMap, err = mxj.NewMapJson([]byte(styleJSON)) if err != nil { log.Panic(err) } }
func confAmqConf(confPath string, confName string) map[string]interface{} { prf("read amqconf from %s ...\n", confPath) jsonStr := gd.StrFromFilePath(confPath) jsonMap, _ := mxj.NewMapJson([]byte(jsonStr)) ConfMap := jsonMap[confName].([]interface{})[0].(map[string]interface{}) return ConfMap }
func GetTwitterUserById(r render.Render, params martini.Params, req *http.Request) { c := appengine.NewContext(req) oauth := NewOAuth1(c, TWITTER_CALLBACK_URL) url := "https://api.twitter.com/1.1/users/show.json" parameters := map[string]string{"screen_name": params["userId"]} secret := []string{TWITTER_CONSUMER_SECRET, ""} response := oauth.Request("GET", url, parameters, "", secret) user, _ := mxj.NewMapJson([]byte(response)) r.JSON(200, user) }
func Json2Struct(jdata []byte, RootName string, Nesting bool) string { m, err := mxj.NewMapJson(jdata) if err != nil { panic(err) } paths := m.LeafPaths() if Nesting { return "Not implement yet..." } else { RootStruct, RestStructs := JsonPath2SrtructLinesNoNesting(paths) return RootDatas2Struct(strings.Title(RootName), RootStruct, RestStructs) } }
func GetTwitterUser(req *http.Request, accessToken *oauth.AccessToken) mxj.Map { c := appengine.NewContext(req) consumer.HttpClient = urlfetch.Client(c) response, _ := consumer.Get("https://api.twitter.com/1.1/account/verify_credentials.json", nil, accessToken) result := make([]byte, 1024*1024) response.Body.Read(result) resultString := string(result) trimStr := strings.Trim(resultString, "\x00") if trimStr == "" { return nil } accountInfo, _ := mxj.NewMapJson([]byte(trimStr)) return accountInfo }
func main() { m, err := mxj.NewMapJson(s) if err != nil { fmt.Println("err:", err.Error()) } v, err := m.ValuesForKey("Address") // v, err := m.ValuesForPath("DBInstances[0].Endpoint.Address") if err != nil { fmt.Println("err:", err.Error()) } if len(v) > 0 { fmt.Println(v[0].(string)) } else { fmt.Println("No value.") } }
// GetMembers gets the list of members by redirecting to Scatter endpoint func GetMembers(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { resp, err := http.Get("http://localhost:3000") if err != nil { fmt.Println(err) w.WriteHeader(500) fmt.Fprint(w, err) } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) var members []member json.Unmarshal(body, &members) w.WriteHeader(200) ufJSON, _ := json.Marshal(members) m, _ := mxj.NewMapJson(ufJSON) xmlVal, _ := m.Xml() fmt.Fprint(w, string(xmlVal)) }
/** * Twitterからのコールバックを受け取って、セッションに詰める。ユーザの登録・更新を行う。 **/ func CallbackTwitter(r render.Render, w http.ResponseWriter, req *http.Request, session sessions.Session) { c := appengine.NewContext(req) token := req.FormValue("oauth_token") verifier := req.FormValue("oauth_verifier") oauth := NewOAuth1(c, TWITTER_CALLBACK_URL) accessToken := oauth.ExchangeToken(token, verifier, "https://api.twitter.com/oauth/access_token") if accessToken != nil { // ログイン成功 // セッション開始 session.Set("accessToken", accessToken.Token) session.Set("accessTokenSecret", accessToken.Secret) c.Infof("toke") c.Infof(accessToken.Token) c.Infof("secret") c.Infof(accessToken.Secret) consumer.HttpClient = urlfetch.Client(c) response, _ := consumer.Get("https://api.twitter.com/1.1/account/verify_credentials.json", nil, accessToken) result := make([]byte, 1024*1024) response.Body.Read(result) resultString := string(result) trimStr := strings.Trim(resultString, "\x00") accountInfo, _ := mxj.NewMapJson([]byte(trimStr)) // User登録 if accountInfo["screen_name"] != nil { screenName := accountInfo["screen_name"].(string) user := &User{} user.Id = screenName user.Key = screenName user.Token = accessToken.Token key := datastore.NewKey(c, "User", screenName, 0, nil) key, err := datastore.Put(c, key, user) if err != nil { c.Criticalf("%s", err) } else { c.Infof("") } } // TODO トップページへリダイレクト r.Redirect("/") } else { // ログイン失敗 r.Redirect("/") } }
// GetActiveFiles gets active files func GetActiveFiles(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { resp, err := http.Get("http://localhost:3000/members") if err != nil { fmt.Println(err) w.WriteHeader(500) fmt.Fprint(w, err) return } defer resp.Body.Close() members := []member{} contents, _ := ioutil.ReadAll(resp.Body) if err := json.Unmarshal(contents, &members); err != nil { w.WriteHeader(500) fmt.Fprint(w, err) } var memberNames []string for _, memberDat := range members { memberNames = append(memberNames, memberDat.Name) } memberJSON, _ := json.Marshal(memberNames) query := url.QueryEscape(string(memberJSON)) resp, err = http.Get("http://localhost:5984/files/_design/design1/_view/userFiles?keys=" + query) if err != nil { fmt.Println(err) w.WriteHeader(500) fmt.Fprint(w, err) } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) var uf userFilesActive json.Unmarshal(body, &uf) w.Header().Set("Content-type", "text/xml") w.WriteHeader(200) ufJSON, _ := json.Marshal(uf) m, _ := mxj.NewMapJson(ufJSON) xmlVal, _ := m.Xml() fmt.Fprint(w, string(xmlVal)) }
// GetAllFiles gets all files, active or not func GetAllFiles(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { fmt.Println("LOL") resp, err := http.Get("http://localhost:5984/files/_all_docs?include_docs=true") if err != nil { fmt.Println(err) w.WriteHeader(500) fmt.Fprint(w, err) } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) var uf userFiles json.Unmarshal(body, &uf) w.WriteHeader(200) ufJSON, _ := json.Marshal(uf) m, _ := mxj.NewMapJson(ufJSON) xmlVal, _ := m.Xml() fmt.Fprint(w, string(xmlVal)) }
// GetMemberFiles get a member's files func GetMemberFiles(w http.ResponseWriter, r *http.Request, p httprouter.Params) { query := url.QueryEscape(`"` + p.ByName("name") + `"`) reqURL := "http://localhost:5984/files/_design/design1/_view/userFiles?key=" + query resp, err := http.Get(reqURL) if err != nil { fmt.Println(err) w.WriteHeader(500) fmt.Fprint(w, err) } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) var uf userFilesActive json.Unmarshal(body, &uf) w.WriteHeader(200) ufJSON, _ := json.Marshal(uf) m, _ := mxj.NewMapJson(ufJSON) xmlVal, _ := m.Xml() fmt.Fprint(w, string(xmlVal)) }