আমি আমার প্রশ্নের সমাধানের জন্য বিন অনুসন্ধান করেছি কিন্তু এর চেয়ে ভাল বা খুঁজে পাইনি যে আমি যা পেয়েছি তা পেয়েছি না। সুতরাং আমার সমস্যাটি কী তা নিয়ে কথা বলা যাক। আমি একটি রাস্পবেরি পাইতে একটি স্মার্ট হোম কন্ট্রোল সফটওয়্যার ব্যবহার করছি এবং আমি এই উইকএন্ডে পাইলাইট-রিসিভ ব্যবহার করে জানতে পারি যে আমি আমার আউটডোর টেম্পারেচার সেন্সর থেকে ডেটা ধরতে পারি। পাইলট-রিসিভের আউটপুটটি এর মতো দেখাচ্ছে:
{
"message": {
"id": 4095,
"temperature": 409.5
},
"origin": "receiver",
"protocol": "alecto_wsd17",
"uuid": "0000-b8-27-eb-0f3db7",
"repeats": 3
}
{
"message": {
"id": 1490,
"temperature": 25.1,
"humidity": 40.0,
"battery": 1
},
"origin": "receiver",
"protocol": "alecto_ws1700",
"uuid": "0000-b8-27-eb-0f3db7",
"repeats": 3
}
{
"message": {
"id": 2039,
"temperature": 409.5
},
"origin": "receiver",
"protocol": "alecto_wsd17",
"uuid": "0000-b8-27-eb-0f3db7",
"repeats": 4
}
এখন আপনার কাছে আমার প্রশ্ন: আইডিটি 1490 থেকে আমি কীভাবে তাপমাত্রা এবং আর্দ্রতা বের করতে পারি And এবং আপনি কীভাবে আমাকে ঘন ঘন এটি পরীক্ষা করতে বলবেন? ক্রোন জব দ্বারা যা প্রতি 10 মিনিটে চলে, পাইলট-প্রাপ্তির একটি আউটপুট তৈরি করে, আউটপুটটির ডেটা বের করে এবং স্মার্ট হোম কন্ট্রোল এপিতে এটি ঠেলে দেয়।
কারও ধারণা আছে - অনেক অনেক ধন্যবাদ
awk
এবং sed
সরবরাহ করা হয়েছে জেএসএন আউটপুট এখানে প্রদর্শিত ফর্ম্যাটিংটি ধরে রাখে, যার এটির দরকার নেই - হোয়াইটস্পেস জেএসএনের পক্ষে কোনও ব্যাপার নয়। উদাহরণস্বরূপ, এই awk
আদেশ: awk '/temperature|humidity/ {print $2}'
কাছাকাছি।
ksh93
JSON পার্সিং করার builtin হয় read
।