func ExampleParseJSON() { d := []byte(`{"A":1,"B":2}`) t := testStruct{} data.ParseJSON(d, &t) fmt.Println(fmt.Sprintf("%+v", t)) // Output: {A:1 B:2} }
func scanRowsUsingStruct(rows *sql.Rows, columns []string, structDest interface{}, batchSize int, dataChan chan data.JSON) { defer rows.Close() tableData := []map[string]interface{}{} for rows.Next() { err := sqlstruct.Scan(structDest, rows) if err != nil { sendErr(err, dataChan) } d, err := data.NewJSON(structDest) if err != nil { sendErr(err, dataChan) } entry := make(map[string]interface{}) err = data.ParseJSON(d, &entry) if err != nil { sendErr(err, dataChan) } tableData = append(tableData, entry) if batchSize > 0 && len(tableData) >= batchSize { sendTableData(tableData, dataChan) tableData = []map[string]interface{}{} } } if rows.Err() != nil { sendErr(rows.Err(), dataChan) } // Flush remaining tableData if len(tableData) > 0 { sendTableData(tableData, dataChan) } close(dataChan) // signal completion to caller }