我试图使用PHP脚本将json文件转换为csv格式.代码如下:
if (empty($argv[1])) die("The json file name or URL is missed\n");
$jsonFilename = $argv[1];
$json = file_get_contents($jsonFilename);
$array = json_decode($json, true);
$f = fopen('output.csv', 'w');
$firstLineKeys = false;
foreach ($array as $line)
{
if (empty($firstLineKeys))
{
$firstLineKeys = array_keys($line);
fputcsv($f, $firstLineKeys);
$firstLineKeys = array_flip($firstLineKeys);
}
fputcsv($f, array_merge($firstLineKeys, $line));
Run Code Online (Sandbox Code Playgroud)
}
这种工作,但只返回JSON文件的外部变量,并得到一个"数组到字符串转换"警告
JSON数据如下所示:
{"type":"NON_ATTRIBUTED","conversion":{,"value_1":"000000100355321","value_3":"XXXX","value_4":"12667","value_5":"6"},"stream_type":"COOKIE"}
{"type":"ATTRIBUTED","conversion":{,"value_1":"000000167865321","value_3":"YYYY","value_4":"12668","value_5":"0"},"stream_type":"COOKIE"}
{"type":"NON_ATTRIBUTED","conversion":{,"value_1":"000000134535321","value_3":"AAAA","value_4":"12669","value_5":"9"},"stream_type":"COOKIE"}
{"type":"NON_ATTRIBUTED","conversion":{,"value_1":"000000100357651","value_3":"WWWW","value_4":"12670","value_5":"2"},"stream_type":"COOKIE"}
Run Code Online (Sandbox Code Playgroud)
我得到的输出是:类型,转换,stream_type NON_ATTRIBUTED,数组,COOKIE NON_ATTRIBUTED,数组,COOKIE
我期望的输出是:type,conversion,value_1,value_3,value_4,value_5,stream_type NON_ATTRIBUTED,000000100355321,XXXX,1267,6,COOKIE ..
我非常感谢,因为这对我来说很新鲜
编辑:感谢您的回复,我尝试了下面列出的所有内容,但现在仍然很幸运。如果我输入 localhosts/posts/new 它会将我带到表单,但是当我从导航栏中单击时链接不起作用。我已经更新了代码并包含了我的 rake 路线结果。
我是 ruby 新手,正在学习教程,但是我的一个链接不起作用,不确定发生了什么。
我创建新帖子的导航链接没有将我带到正确的页面,当我单击“posts_path”的链接时,页面不会改变。
我可以通过在地址栏中键入 /posts/new 来创建新帖子,但是当我单击导航栏上的“新帖子”链接时,页面不会更新(尽管 url 显示 /posts)。知道如何解决这个问题吗?
配置/路由.rb
Rails.application.routes.draw do
get 'sessions/new'
root 'static_pages#home'
get '/search', to: 'static_pages#search'
get '/login', to: 'sessions#new'
get '/posts', to: 'posts#new', as: 'new_post'
post '/login', to: 'sessions#create'
delete '/logout', to: 'sessions#destroy'
get '/signup', to: 'users#new'
get 'users/new'
get 'static_pages/home'
get 'posts/new'
get 'sessions/new'
resources :users
resources :account_activations, only: [:edit]
resources :password_resets, only: [:new, :create, :edit, :update]
resources :posts, only: [:new, :create, :destroy]
end
Run Code Online (Sandbox Code Playgroud)
应用程序/视图/布局/_header.html.erb
<header class="navbar …Run Code Online (Sandbox Code Playgroud) 我有一个客户选项卡控制器,该控制器带有一个自定义图标,当用户单击弹出菜单时,该图标带有3个选择。当我单击第一个选项时,它应该带我到新的视图控制器,但是,当我单击它时,视图控制器仅出现一秒钟,然后再次消失。我不确定为什么,但是这是我的客户标签栏代码:
import UIKit
import PopMenu
class TabBarController: UITabBarController, UITabBarControllerDelegate {
override func viewDidLoad() {
delegate = self
}
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
if viewController.title == "for custom action" {
let manager = PopMenuManager.default
let action1 = PopMenuDefaultAction(title: "Scan Barcode", didSelect: { action in
self.performSegue(withIdentifier: "showScanBarcode", sender: nil)
print("\(String(describing: action.title)) is tapped")
})
let action2 = PopMenuDefaultAction(title: "Action 2", didSelect: { action in
print("\(String(describing: action.title)) is tapped")
})
let action3 = PopMenuDefaultAction(title: "Action 3", image: …Run Code Online (Sandbox Code Playgroud) 我试图抓住被点击的文本.我有一个案例,在同一个类下定义了两个不同的链接,我需要确定点击了哪个链接
<div class="block pdp-estimate-quote">
<ul>
<li>
<a href="#">Estimate Payment</a>
</li>
<li>
<a href="#">Get a Quote</a>
</li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
当有人使用链接文本作为描述点击任一链接时,我想抛出GA事件.以下代码抛出一个事件,但它显示了两个链接的文本,而不仅仅是单击的链接.
$('.pdp-estimate-quote a').click(function(){
var ctatext = $(this).closest(".pdp-estimate-quote").find('a').text();
dataLayer.push({ 'event':'event', 'eventCategory': 'Get Quote', 'eventAction':ctatext, 'eventLabel':{{url path}} })
});
Run Code Online (Sandbox Code Playgroud)