Android 颤振条形码扫描结果
我有一个飞行计划。在那个项目中,我有一个条形码扫描仪。扫描条形码时,我返回一个数字结果。在同一个项目中,我有一个本地JSON文件。在本地JSON文件中,我有一个名为“条形码”的字段,它包含一些产品的条形码编号。我想比较结果和“条形码”,如果有匹配,我想从JSON文件中获取记录。你知道怎么做吗 这是我的密码:Android 颤振条形码扫描结果,android,flutter,dart,barcode-scanner,Android,Flutter,Dart,Barcode Scanner,我有一个飞行计划。在那个项目中,我有一个条形码扫描仪。扫描条形码时,我返回一个数字结果。在同一个项目中,我有一个本地JSON文件。在本地JSON文件中,我有一个名为“条形码”的字段,它包含一些产品的条形码编号。我想比较结果和“条形码”,如果有匹配,我想从JSON文件中获取记录。你知道怎么做吗 这是我的密码: import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_barcode_sc
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter_barcode_scanner/flutter_barcode_scanner.dart';
import 'dart:async' show Future;
import 'package:flutter/services.dart' show rootBundle;
import 'dart:convert';
import 'package:flutter/services.dart';
// ignore: camel_case_types
class barcodeReader extends StatefulWidget {
_barcodeReaderState createState() => _barcodeReaderState();
}
// ignore: camel_case_types
class _barcodeReaderState extends State<barcodeReader> {
String _title = 'Barcode Scanner';
String _result = 'Click Scan button for start to scan';
String _scanButtonLabel = 'Scan';
String _scanResult = '(Empty result)';
String _errorMessage = 'Unknown error';
List data;
Future<String> resultBarcode;
Future<String> resultIlac;
Future _scanCode() async {
try {
_scanResult =
await FlutterBarcodeScanner.scanBarcode("#000000", "Cancel", true);
setState(() {
_result = _scanResult;
});
} catch (e) {
_errorMessage = '$_errorMessage $e';
setState(() {
_result = _errorMessage;
});
}
}
Future<String> loadJsonData(int index, snapshot) async {
var jsonText = await rootBundle.loadString('assets/csvjson_2son.json');
var mydata = JsonDecoder().convert(snapshot.data.toString());
setState(() => data = json.decode(jsonText));
mydata[index]['BARKOD'] = resultBarcode;
mydata[index]['ILAC ADI'] = resultIlac;
if (resultBarcode == _result) {
return resultIlac;
}
}
@override
void initState() {
super.initState();
this.loadJsonData(0, data);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
toolbarHeight: 90,
backgroundColor: Color(0xFF3EB16F),
title: Text("Barcode Scanner"),
centerTitle: true,
textTheme: TextTheme(
headline6: TextStyle(fontSize: 44, fontFamily: "Angel"),
),
),
body: Center(
child: Text('$_result'),
),
floatingActionButton: FloatingActionButton.extended(
icon: Icon(Icons.scanner),
label: Text('$_scanButtonLabel'),
onPressed: _scanCode,
),
floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
);
}
}
导入'dart:async';
进口“包装:颤振/材料.省道”;
导入“包装:颤振条形码扫描仪/颤振条形码扫描仪.dart”;
导入“dart:async”显示未来;
导入“包:flatter/services.dart”显示根包;
导入“dart:convert”;
导入“包:flifter/services.dart”;
//忽略:驼峰\u案例\u类型
类barcodeReader扩展StatefulWidget{
_barcodeReaderState createState()=>\u barcodeReaderState();
}
//忽略:驼峰\u案例\u类型
类_barcodeReaderState扩展状态{
字符串_title='条形码扫描器';
字符串_result='单击扫描按钮开始扫描';
字符串_scanButtonLabel='Scan';
字符串_scanResult='(空结果)';
字符串_errorMessage='未知错误';
列出数据;
未来结果弧码;
未来结果AC;
Future\u scanCode()异步{
试一试{
_扫描结果=
等待条形码扫描仪扫描条形码(“000000”,“取消”,真);
设置状态(){
_结果=_scanResult;
});
}捕获(e){
_errorMessage='$_errorMessage$e';
设置状态(){
_结果=\u错误消息;
});
}
}
未来加载JSONDATA(整型索引,快照)异步{
var jsonText=await rootBundle.loadString('assets/csvjson_2son.json');
var mydata=JsonDecoder().convert(snapshot.data.toString());
setState(()=>data=json.decode(jsonText));
mydata[索引]['BARKOD']=resultBarcode;
mydata[索引]['ILAC ADI']=resultIlac;
if(resultBarcode==\u结果){
返回resultIlac;
}
}
@凌驾
void initState(){
super.initState();
这个.loadJsonData(0,数据);
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
身高:90,
背景颜色:颜色(0xFF3EB16F),
标题:文本(“条形码扫描仪”),
标题:对,
textTheme:textTheme(
标题行6:TextStyle(fontSize:44,fontFamily:“天使”),
),
),
正文:中(
子项:文本(“$\u结果”),
),
floatingActionButton:floatingActionButton.extended(
图标:图标(Icons.scanner),
标签:文本(“$\u scanButtonLabel”),
按下按钮:\ u扫描码,
),
浮动ActionButtonLocation:浮动ActionButtonLocation.centerFloat,
);
}
}
要获得清晰的解决方案,您需要共享json文件的一部分。无论如何,在地图中,您可以检查密钥是否存在;(如果存在,则返回布尔值true)
检查映射是否包含值;(如果存在,则返回布尔值true)
注意:键是映射的字段名,值表示字段的值
Map body = {"locale":"tr","conversationId":"123456ayx5","binNumber":"$binNumber"} ;
“locale”是一个键,“tr”是它的值
更新:
尝试获取字段的值时出错。您尝试更新json文件值
mydata[index]['BARKOD'] = resultBarcode;
mydata[index]['ILAC ADI'] = resultIlac;
使用它
mydata.forEach((element) {
if(element['BARKOD']==_result)
{
return element['ILAC ADI'];
}
});
我的json的一部分就是这样。但是我想把ILAC ADI字段带到屏幕上,如果它们相等的话,
{“BARKOD”:8699565643597,“ATC KODU”:“A01AD02”,“ATC ADI”:“Benzidamine”,“refereans\nESDEGER”:“refereans”,“ESDEGERI”:1,“ILAC ADI”:“TANTUM VERDE%0,15 120 ML GARGARA”,“ETKIN MADDE”:“BENZIDAMIN HCL”,“FIRMA ADI”:“CINAY KIMYA”,“BIRIM MIKTAR”:“0,15%,“BIRIM CINSI”:“G”,“AMBALAJ MIKTARI”:120,“RECETE”:“正常RECETE”,“KDV DAHIL PERAKENDE SATIS TL FIYATI”:“3,67”},
更新了评论
mydata[index]['BARKOD'] = resultBarcode;
mydata[index]['ILAC ADI'] = resultIlac;
mydata.forEach((element) {
if(element['BARKOD']==_result)
{
return element['ILAC ADI'];
}
});